Jika karena alasan tertentu Anda terbatas menggunakan operasi morfologis, maka Anda dapat mempertimbangkan untuk menggunakan "skema pemungutan suara" dari operasi tertutup yang berorientasi.
Satu masalah dengan operasi morfologis adalah bahwa mereka tidak benar-benar mempertimbangkan directionality. Untuk piksel tengah, lingkungan seperti ini
1 0 0
1 1 0
0 1 1
benar-benar tidak berbeda dari lingkungan seperti ini
0 1 0
1 1 0
1 1 0
Hal itu dapat menyebabkan masalah karena pelebaran dan erosi tidak bias arah ketika Anda menginginkannya. Jadi satu hal yang dapat Anda lakukan adalah menemukan operasi morfologi bias yang paling sesuai arah menggunakan kernel seperti ini:
1 1 0 1 0 0 1 0 0
0 1 0 1 1 0 1 1 0
0 1 1 0 1 1 0 1 1 . . .
Ini akan lebih baik dengan kernel 5 x 5, tapi saya pikir idenya cukup jelas. Pada dasarnya, ide kernel deteksi sudut adalah peregangan sedikit sehingga merupakan kernel deteksi segmen garis. Anda juga dapat menggunakannya untuk menemukan kurva yang paling pas:
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
Jelas ini mengarah ke sejumlah besar kernel, tetapi jika ide dasar berfungsi menjanjikan bagi Anda, ada cara untuk mengoptimalkan teknik sehingga kernel yang paling cocok ditemukan dalam satu pass.
Bagaimanapun, jika Anda menggunakan banyak kernel dan beberapa logika, setiap operasi di (x, y) membutuhkan lebih banyak perhitungan daripada langkah morfologis tradisional:
- Pada setiap piksel (x, y), terapkan masing-masing dari beberapa operator morfologi. Untuk setiap operator, hitung baik hasil operasi morfologis DAN sejauh mana input cocok dengan kernel. ("Gelar" = jumlah piksel yang cocok)
- Pilih hasil morfologis untuk kernel yang paling cocok dengan konfigurasi on / off pixel yang sebenarnya.
Ukuran kernel harus dicocokkan dengan ukuran input. Daripada menggunakan kernel yang lebih besar, Anda bisa menggunakan kernel "spread" untuk mengurangi jumlah operasi. Kernel berikut ini hanya kernel 3 x 3 dengan radius lebih besar dari 1.
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 0 1