Ini proses sederhana:
- Tetapkan pengukuran tekstur untuk setiap wilayah dalam gambar.
- Gunakan algoritma pelabelan / konektivitas wilayah (atau algoritma pertumbuhan wilayah) untuk bergabung dengan wilayah yang berdekatan memiliki ukuran tekstur yang sama.
- Terapkan algoritma edge-following sederhana untuk melacak kontur setiap wilayah.
Ukuran Tekstur Law adalah teknik yang lebih tua tetapi masih berguna untuk menentukan tekstur dalam gambar, dan itu mungkin cukup bagi Anda untuk membedakan tekstur A dari tekstur B di seluruh gambar. Lihat bagian "Tindakan Energi Tekstur Hukum" di artikel Wikipedia:
http://en.wikipedia.org/wiki/Image_texture
Sebagai langkah pertama, hitung semua ukuran tekstur dan tentukan ukuran tertentu (misalnya Tepi atau Bintik) yang memungkinkan Anda membedakan satu tekstur dari yang lainnya dengan mudah. (Jika Anda memposting beberapa gambar, saya dapat membantu Anda mengidentifikasi ukuran tekstur.)
Jika Anda hanya memiliki dua tekstur, A dan B, maka Anda dapat memperlakukannya sebagai latar depan dan latar belakang, dan algoritma pelabelan wilayah standar akan berfungsi. Untuk membuatnya lebih mudah untuk melihat apa yang terjadi dalam pemrosesan, Anda dapat menghasilkan gambar baru dengan menetapkan A texels (elemen tekstur, potongan kecil tekstur) ke warna putih, dan B texels ke warna hitam. Pelabelan wilayah dan / atau algoritma mengikuti kontur kemudian akan menemukan wilayah putih dan hitam yang terhubung. Fungsi findContours () di OpenCV akan bekerja dengan baik.
http://en.wikipedia.org/wiki/Connected-component_labeling
Artikel Wikipedia yang sama mencakup algoritma multipass tradisional maupun algoritma pass-tunggal. Saya belum mengimplementasikan algoritma single-pass yang dijelaskan di sana, tetapi saya telah bekerja dengan algoritma single-pass yang dijelaskan dalam makalah "Algoritma Pelabelan Komponen Menggunakan Teknik Pelacakan Kontur" oleh Chen dan Chang. Makalah oleh Chen dan Chang juga menjelaskan algoritma mengikuti kontur standar yang dapat diimplementasikan dengan cepat.
Jika Anda memiliki lebih dari dua tekstur, maka Anda mungkin menggunakan algoritma DAS atau rata - rata untuk mengelompokkan wilayah setelah Anda memetakan kembali tekstur menjadi warna. Meskipun memetakan ulang dari tekstur ke warna tidak perlu, itu membuat proses lebih mudah untuk debug dan mengerti.