Canny Edge Detection

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:

Tepi Hasil Deteksi Canny

Tepi Hasil Deteksi Canny

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:

    1. Pertama-tama dilakukan penghalusan (smoothing) citra untuk menghilangkan noise.  Contohnya menggunakan filtering dengan Gaussian Filter.
    2. 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…
    3. 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.
    4. 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.
    5. 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.

4 Respon untuk Canny Edge Detection

  1. punya softwarenya untuk canny yang pake delphi ga? kalo ada kirimin ke email ya…thanx berat

  2. ada source code deteksi tepi canny di delphi gag??? kalo ada tolong kirimin ke email dong makasih sebelumnya :)

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s