Jawaban:
Operasi morfologis Expand dan Shrink dibuat untuk pemrosesan semacam ini. Gunakan ArcGIS (atau GRASS atau Mathematica ) karena R
pustaka "raster" terlalu lambat.
Seringkali membantu untuk sedikit bereksperimen dengan parameter: Anda harus memutuskan berapa banyak ekspansi dan penyusutan yang diperlukan untuk membersihkan gambar; dan biasanya Anda ingin melakukan sesedikit mungkin, karena setiap operasi cenderung memuluskan beberapa detail yang tajam. Berikut adalah urutan yang berfungsi dengan baik untuk menghilangkan banyak "suara" yang tampak dengan tetap mempertahankan sebagian besar detail dalam "entitas". "Expand" dan "shrink" keduanya mengacu pada sel putih , sehingga ekspansi menyebabkan mereka tumbuh keluar dan menyusut menyebabkan sel-sel hitam merambah ke wilayah putih.
Kolom "perbedaan" menggunakan warna untuk menyoroti perbedaan antara gambar awal dan akhir pada setiap langkah: biru untuk hitam yang berubah menjadi putih, dan oranye untuk putih yang berubah menjadi hitam.
Jika bagian yang lebih besar yang tersisa perlu dihapus, itu mungkin sebaiknya dilakukan dengan RegionGroup untuk mengidentifikasi mereka, setelah itu mereka dapat dilenyapkan melalui reklasifikasi. Ini merupakan pilihan di awal, tetapi sedikit pembersihan awal dengan Expand
dan Shrink
mengurangi pekerjaan dan memberikan smoothing yang diinginkan.
Secara kebetulan, saya memilih untuk membuat delapan gambar dalam ilustrasi ini dengan perintah Mathematica karena sangat sederhana, mudah, dan cepat untuk dieksekusi:
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 *)
Alur kerja di ArcGIS adalah sama tetapi sintaksinya akan lebih panjang. Jika Anda benar-benar ingin menggunakan R
, muat pustaka "raster" dan eksploitasi focalFilter
untuk membuat fungsi untuk melakukan perluasan dan penyusutan. Kemudian, tunggu sekitar satu menit untuk menjalankan operasi ....
Menggunakan Spatial Analyst Extension, Anda dapat menggunakan beberapa alat Generalisasi . Beberapa dari mereka melakukan tugas yang serupa, jadi Anda mungkin perlu bermain-main dengan beberapa untuk mendapatkan hasil seperti yang Anda inginkan. Tapi, saya akan melihat alat Filter Mayoritas dan alat Boundary Clean .
Berikut adalah halaman tentang konsep kedua alat ini.
Saya tidak yakin bagaimana melakukan tugas-tugas ini di R, tapi di sini ada posting tentang bagaimana melakukan Filter Mayoritas menggunakan GRASS GIS.
Ini pada dasarnya adalah varian dari jawaban @ whuber dan menggunakan Euclidian Distance untuk memperluas dan mengecilkan batas-batas raster untuk menghaluskan sudut-sudut tajam dari raster yang diperbesar dengan proses shrink-shrink yang memanfaatkan jumlah sel untuk tumbuh / melanggar. Meskipun Euclidian Distance meniru Expand, tidak mungkin untuk memperkenalkan nilai negatif untuk melanggar / menyusut. Caranya adalah dengan mengembangkan proses berulang untuk mengambil negatif dari raster Euclidian Distance dan menumbuhkannya. Di bawah ini adalah langkah-langkah untuk citra sampel yang diberikan dan foto-foto untuk klarifikasi.
Reklasifikasi raster hanya untuk menyimpan 1s (sel putih)
Terapkan jarak euclidian untuk jarak dua sel (60 meter dalam kasus ini) ke raster yang direklasifikasi
Ambil negatif dari raster yang diperluas dengan menggunakan Reklasifikasi (sel-sel dengan nilai akan mendapatkan NODATA dan NODATA akan berubah menjadi 1) atau operator Con dan IsNull Raster Calculator
Terapkan Euclidian Distance sekali lagi ke raster negatif ini dengan jarak yang sama (60 m)
Ambil yang negatif dari ini dengan mengikuti proses yang sama seperti yang diberikan di atas
Gunakan Raster Calculator atau Reclassify untuk menetapkan sel NODATA ke 0 di raster ini untuk kembali ke nilai asli dari sampel raster
Perluas Shrink vs. Euclidian Distance
Catatan: Hijau menunjukkan sel yang diproses (sel putih dalam pertanyaan)
Keuntungan dari Euclidian Distance adalah, dibutuhkan jarak yang tepat dari setiap sel melalui luasan sisi miring yang meratakan tepi yang tajam. Di sisi lain, jumlah parameter sel alat ekspansi dan menyusut, memproses jumlah sel yang sama untuk semua arah, yang menghasilkan kotak pembatas seperti tepi, oleh karena itu terlalu menggeneralisasi tepi / sudutnya.
Masalah utama, bagaimanapun, itu tidak menghilangkan suara sesukses memperluas / menyusut dan itu sedikit lebih lama dari jawabannya.