Halo, menyambung tulisan pekan lalu, masih tentang Edge Detection alias deteksi tepi pada citra.. Nah, sekarang dikenalkan algoritme deteksi tepi Canny… hem… apa bedanya? Mengapa Canny spesial? let’s see..
Um, inti yang za tangkep waktu kuliah si, pada algoritme deteksi tepi Canny ini dilakukan proses penipisan, sehingga edge yang dihasilkan kurang lebih seperti:
nah, lebih tipis kan?
gimana bisa? soalnya di deteksi tepi Canny ini setiap tepi/garis, direpresentasikan hanya oleh satu respon (piksel?).
***
sekian pengantarnya, berikut ini adalah tulisan yang di copas dari tugas.. hehe..
***
Algoritme deteksi tepi Canny dikenal sebagai algoritme yang optimal dalam melakukan pendeteksian tepi. Untuk meningkatkan metode-metode yang telah ada dalam pendeteksian tepi, algortime deteksi tepi Canny mengikuti beberapa kriteria sebagai berikut:
- Tingkat error yang rendah. Error terjadi bila ada tepi yang penting tetapi tidak muncul, atau bila ada yang bukan tepi tetapi muncul.
- Titik-titik pada tepi dilokasikan dengan benar. Dengan kata lain, jarak antara piksel-piksel tepi yang ditemukan algoritme dengan tepi sesungguhnya diminimumkan.
- Hanya satu respon (lebar 1 piksel) untuk setiap sebuah tepi.
Berdasarkan kriteria di atas, algoritme deteksi tepi Canny dilakukan dengan langkah-langkah sebagai berikut:
- Pertama-tama dilakukan penghalusan (smoothing) citra untuk menghilangkan noise. Contohnya menggunakan filtering dengan Gaussian Filter.
- Selanjutnya dicari gradient magnitude citra untuk melihat daerah-daerah yang memiliki turunan spasial yang tinggi. Pencarian gradient magnitude seperti yang ditulis pada tulisan sebelumya, bisa pakai Sobel, Prewitt,, dll…
- Ditentukan arah dari tepi dengan menggunakan invers tangen dari gradient magnitude Y (Gy) dibagi gradient magnitude X (Gx). Arah yang diperoleh dari perhitungan ini kemudian dipetakan ke 0, 45, 90, atau 135 derajat berdasarkan kedekatannya dengan keempat derajat arah tadi.
- Kemudian dilakukan Non Maximum Suppression. Yaitu, penghilangan nilai-nilai yang tidak maksimum. Ditelusuri daerah yang ditemukan pada langkah 2 (dengan arah seperti yang ditemukan pada langkah 3), dan menghilangkan (suppress) setiap piksel yang tidak maksimum.
- Selanjutnya dilakukan Hysteresis (disebut juga Hysthresis), [for me maybe simply "double thresholding"]. Hysteresis menggunakan dua threshold T1 (threshold bawah) dan T2 (threshold atas). Bila magnitude ada di bawah T1, titik tersebut di-set nol (dijadikan non-tepi). Bila magnitude ada di atas T2, maka termasuk tepi. Bila magnitude ada diantara T1 dan T2, di-set nol kecuali jika ada jalan (path) dari titik tersebut ke titik yang memiliki magnitude di atas T2.
***
sekian, semoga bermanfaat.



