Yanıtlar:
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.
"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 Expand
ve Shrink
iş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 focalFilter
ve 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 ....
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ı .
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.
Sadece 1s (beyaz hücreler) tutmak için raster yeniden
Yeniden sınıflandırılmış rasterine iki hücreli mesafe için (bu durumda 60 metre) öklid mesafesini uygulayın
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
Euclidian Distance'ı aynı negatif mesafedeki (60 m) bu negatif rastere bir kez daha uygulayın
Yukarıda verilen aynı işlemi takip ederek bunun olumsuzluğunu alın.
Ö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ığı
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.