Raster Gürültü Azaltma ve Kenar Düzeltme İşlemi Yapılıyor?


22

Bunun gibi bir raster resmim varRaster görüntü

İzole edilmiş gürültü noktasını silmek ve kenarı yumuşatmak istiyorum (beyaz tek noktaları söyleyin ve öğenin kenarlarının düzgün görünmesini istiyorum). Bunu ArcGIS veya R'de nasıl yapabilirim?

Hücre boyutu 30 x 30'dur.

Yanıtlar:


15

Expand ve Shrink morfolojik işlemleri bu tür işlemler için oluşturulmuştur. ArcGIS (veya GRASS veya Mathematica) kullanın.R'' Raster '' kütüphanesi çok yavaş olduğu için ) .


Genellikle, parametrelerle biraz denemeye yardımcı olur: bir görüntüyü temizlemek için ne kadar genişleme ve daralma gerektiğine karar vermelisiniz; ve genellikle mümkün olduğunca az şey yapmak istersiniz, çünkü her bir işlem keskin ayrıntıların bazılarını yumuşatmaya meyillidir. "Varlıklar" daki ayrıntıların çoğunu korurken, görünür "gürültünün" çoğunu ortadan kaldırmak için iyi çalışan bir dizi. "Genişlet" ve "büzülme" her ikisi de beyaz hücrelere atıfta bulunur, böylece genişleme onların dışa doğru büyümesine neden olur ve büzülme siyah hücrelerin beyaz bölgelere girmesine neden olur.

Görüntü tablosu

"Fark" sütunu, her adımda başlangıç ​​ve bitiş görüntüsü arasındaki farkları vurgulamak için renk kullanır: beyaza dönüşen siyah için mavi ve siyaha dönüşen beyaz için turuncu.

Kalan daha büyük parçaların çıkarılması gerekiyorsa, bu en iyi onları tanımlamak için RegionGroup ile yapılabilir , daha sonra yeniden sınıflandırma yoluyla yok edilebilir. Bu başlangıçta bir seçenekti, ancak biraz başlangıçta yapılan temizlik Expandve Shrinkişi azaltıyor ve istenen düzeltmeyi sağlıyor.


Bu arada, bu resimde sekiz görüntüyü Mathematica komutları ile oluşturmayı seçtim, çünkü kullanımı çok basit, kolay ve hızlı:

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

ArcGIS'deki iş akışı aynıdır ancak sözdizimi daha uzun olacaktır. Gerçekten kullanmak istiyorsanız R, "raster" kitaplığını yükleyin focalFilterve genişletme ve daraltma yapmak için işlevler oluşturmak için istifade edin. O zaman işlemleri yürütmek için bir dakika bekleyin ....


Merhaba! Sakıncası yoksa, bana iletişim bilgilerinizi gönderebilir misiniz? Araştırmamda sizi onaylamak istiyorum. Teşekkür! @whuber
görüldü

GRASS'daki eşdeğer komutları biliyor musunuz?
Richard,

1
@Richard Bu işlemleri GRASS'da yapmanın birçok yaratıcı yolu olduğundan eminim, ancak r.neighbors görev için uygun görünüyor.
whuber

12

Uzamsal Analist Uzantısını kullanarak, Genelleştirme araçlarının bazılarını kullanabilirsiniz . Bazıları benzer görevleri yerine getirir, bu nedenle sonuçları istediğiniz şekilde almak için birkaç kişiyle oynamanız gerekebilir. Ancak, Çoğunluk Filtresi aracına ve Sınır Temizliğine bir göz atardım aracına .

İşte bir sayfa bu iki aracın kavramları hakkında .

Bu görevlerin R'de nasıl gerçekleştirileceğinden emin değilim, ancak işte GRASS GIS kullanarak Çoğunluk Filtresi'nin nasıl uygulanacağına dair bir yazı .


2

Bu, temel olarak @ whuber'un cevabına bir değişkendir ve büyümek / tecrit için kullanılan hücre sayısını kullanan genişleme-küçültme işlemiyle abartılan rasterin keskin köşelerini düzleştirmek için raster sınırlarını genişletmek ve daraltmak için Euclidian Distance'ı kullanır. Euclidian Distance Expand'ı taklit etse de, sınırlamak / küçültmek için negatif bir değer vermek mümkün değildir. İşin püf noktası, Euclidian Distance rasterinin negatifini almak ve onu büyütmek için yinelemeli bir süreç geliştirmek. Aşağıda verilen örnek görüntü için adımlar ve açıklama için anlık görüntüler verilmiştir.

  1. Sadece 1s (beyaz hücreler) tutmak için raster yeniden

  2. Yeniden sınıflandırılmış rasterine iki hücreli mesafe için (bu durumda 60 metre) öklid mesafesini uygulayın

  3. Negatifini al genişletilmiş veya Raster Calculator Con ve ısnull operatörleri (NODATA ve NODATA 1'e açılır alacak değerle hücreleri) yeniden sınıflandırılmasını kullanarak raster

  4. Euclidian Distance'ı aynı negatif mesafedeki (60 m) bu negatif rastere bir kez daha uygulayın

  5. Yukarıda verilen aynı işlemi takip ederek bunun olumsuzluğunu alın.

  6. Örnek rasterin orijinal değerlerine geri dönmek için NODATA hücrelerini bu rasterde 0'a atamak için Raster Hesaplayıcı veya Yeniden Sınıflandır'ı kullanın.

Genişletme Küçültme ile Öklid Uzaklığı

Genişlet ve küçültÖklidiyen mesafe

Not: Yeşil işlenmiş hücreleri (sorulardaki beyaz hücreler) gösterir.

Öklid Mesafesi'nin avantajı, aksi takdirde keskin kenarları düzelten hipotenüs uzantıları boyunca her hücreden uygun mesafeyi almasıdır . Diğer yandan, genişletme ve küçültme araçlarının hücre parametresi sayısı, tüm yönler için aynı sayıda hücreyi işler; bu, kenarlar gibi sınırlayıcı kutu oluşturur, bu nedenle kenarları / köşeleri aşırı derecede genelleştirir.

Ana sorun, gürültüyü genişlet / küçültme kadar başarılı bir şekilde silmez ve cevaptan biraz daha uzundur.


Bunu biri yapıyor ve ÇİM / QGIS kullanarak için - r.grow kullanabilir ve negatif Öklid mesafesi ardından olumlu Öklid mesafe ile büyümek
srha
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.