SUBBAB 6: Operator Canny
Setelah selesai mempelajari materi, mahasiswa diharapkan:
- Mampu memahami konsep operator Canny dalam pendeteksian tepi.
- Mampu melakukan perhitungan tahap-tahap operator Canny, yaitu gaussian blur, gradien operator Sobel, non-maximum suppression, double threshold, dan edge tracking by hysteris.
Operator Canny adalah salah satu metode deteksi tepi paling populer dan kuat. Tujuannya adalah:
Menemukan tepi yang tajam, jelas, dan bebas noise, dengan akurasi tinggi.
Metode ini dikembangkan oleh John F. Canny pada tahun 1986 dan sampai sekarang masih digunakan luas karena keakuratannya.
Tujuan utama metode ini adalah:
- Mengurangi noise pada gambar.
- Mendeteksi tepi yang sebenarnya, bukan cuma perubahan kecil.
- Menentukan arah tepi.
- Menghubungkan titik-titik tepi agar membentuk garis yang utuh.
Perbandingan Canny dengan Operator Lain
Gambar 6.1 merupakan perbandingan operator Canny dengan operator lain.

Gambar 6.1 Perbandingan hasil operator Canny dengan operator lainnya
Perbedaan Hasil Deteksi Tepi Antar Operator:
- Prewitt menghasilkan tepi yang halus dan agak kabur, tidak terlalu tajam dibandingkan operator lain.
- Sobel memberikan hasil tepi yang lebih tegas dari Prewitt karena bobot piksel tengah lebih besar.
- Roberts menghasilkan tepi yang sangat tipis dan tajam, namun lebih sensitif terhadap noise.
- Kirsch mendeteksi tepi dengan sangat tebal dan menyeluruh, menangkap banyak arah dengan kontras tinggi.
- Laplace menunjukkan tepi yang lebih gelap dan halus, seringkali tidak setegas metode turunan pertama.
- LoG menghasilkan tepi yang lebih bersih dibanding Laplace karena efek smoothing sebelum deteksi.
- Canny memberikan hasil paling bersih dan tajam, dengan garis tepi yang sangat tipis dan akurat.
- Prewitt dan Sobel serupa, tetapi Sobel lebih unggul dalam ketegasan garis.
- Roberts unggul dalam mendeteksi tepi halus, namun rawan noise dan tidak menangkap kontur besar dengan baik.
- Kirsch dan Canny sama-sama mendeteksi tepi kuat, tapi Kirsch lebih tebal sedangkan Canny lebih tipis dan rapi.
Dari perbandingan ini, dapat disimpulkan bahwa operator Canny adalah metode yang lebih unggul karena menghasilkan peta tepi yang lebih rapi dan akurat.
1. Gaussian Blur (Menghaluskan Gambar)
Tujuan: Mengurangi noise atau bintik-bintik kecil yang bisa salah dikenali sebagai tepi.
Caranya: Gambar dikonvolusi dengan Gaussian Filter (filter blur).
2. Gradient (Turunan Pertama) dengan Operator Sobel
Tujuan: Mendeteksi seberapa besar perubahan intensitas piksel.
Caranya: Hitung gradien arah X dan Y menggunakan operator Sobel.
3. Non-Maximum Suppression
Tujuan: Menajamkan tepi dengan menghapus piksel yang bukan puncak maksimum di arah gradien.
Contoh (arah gradien →):
\[ \begin{bmatrix} 3 & \mathbf{7} & 2 \end{bmatrix} \quad \text{Piksel tengah (7) lebih besar, jadi disimpan.} \]
4. Thresholding Ganda (Double Threshold)
Tujuan: Menentukan apakah suatu piksel merupakan tepi kuat, lemah, atau bukan tepi.
- Tepi kuat: gradien > threshold tinggi → ✅ dipertahankan
- Tepi lemah: antara threshold rendah dan tinggi → ❓ perlu dicek
- Bukan tepi: gradien < threshold rendah → ❌ dihapus
Contoh (threshold tinggi = 100, rendah = 50):
- 120 → tepi kuat
- 70 → tepi lemah
- 40 → bukan tepi
5. Edge Tracking by Hysteresis
Tujuan: Menentukan apakah piksel tepi lemah akan tetap disimpan atau dibuang.
Caranya:
- Jika terhubung ke tepi kuat → ✅ disimpan
- Jika terisolasi → ❌ dibuang
Contoh:
Strong ➝ Weak ➝ Weak → ✅ simpan semua
Weak sendiri tanpa koneksi → ❌ buang
Contoh Perhitungan dengan Operator Canny
Gambar 6.2 menunjukkan citra ukuran 4x4 beserta nilai pikselnya yang akan kita gunakan untuk mendeteksi tepi dengan operator Prewitt.
|
|
Gambar 6.2 Matriks citra 4x4 untuk perhitungan operator Canny
Kita akan melakukan pendeteksian tepi pada matriks di atas menggunakan operator Canny dan teknik edge padding.
Langkah 1: Gaussian Blur (Menghaluskan Gambar)
Input Matriks
Kernel Konvolusi
Hasil Konvolusi
Perhitungan:
Perhitungan akan muncul di sini
Penjelasan:
Hasil konvolusi Gaussian menunjukkan penyaringan halus (smoothing) di seluruh area gambar dengan nilai intensitas yang meningkat bertahap dari kiri atas (0,0) ke kanan bawah (3,3). Hal ini menunjukkan bahwa nilai intensitas piksel menjadi lebih halus dan merata dengan transisi yang lembut. Titik dengan nilai tertinggi berada di piksel (3,3) yaitu 124.25, sementara nilai terendah berada di piksel (0,2) yaitu 130.75, menunjukkan transisi lembut dan konsisten. Pola ini mencerminkan efek Gaussian yang mengurangi noise tanpa menghilangkan bentuk umum atau gradasi alami pada citra.
Langkah 2: Hitung Magnitudo
Input Matriks
Kernel Konvolusi
Hasil Konvolusi
Perhitungan:
Perhitungan akan muncul di sini
Penjelasan:
- Hasil konvolusi Sobel Gx menunjukkan adanya tepi vertikal yang sangat jelas di kolom ke-1 dengan nilai -224 dan kolom ke-2 dengan nilai -174. Nilai-nilai ini menunjukkan perubahan intensitas yang tajam dari kiri ke kanan, seperti perbatasan antara area terang dan gelap. Sementara itu, piksel di kiri (kolom 0) dan kanan (kolom 2 dan 3) memiliki nilai lebih kecil, menandakan perubahan intensitas di sana tidak terlalu tajam.
- Hasil konvolusi menggunakan kernel Sobel Gy menunjukkan nilai-nilai yang rendah karena gambar aslinya tidak memiliki perubahan intensitas yang mencolok secara vertikal. Artinya, tidak ada transisi terang-gelap yang signifikan dari atas ke bawah yang bisa dianggap sebagai tepi horizontal.
Setelah kita mendapatkan hasil turunan pertama di arah horizontal (Gx) dan vertikal (Gy), kita bisa menghitung magnitudo dan arah tepi. Berikut caranya.
Rumus:Klik tombol Mulai Hitung, lalu klik Lanjut untuk melanjutkan proses.
Perhitungan:
Penjelasan:
Hasil magnitudo menunjukkan seberapa kuat perubahan intensitas di setiap piksel, di mana nilai yang lebih tinggi menandakan adanya tepi yang lebih jelas. Misalnya, nilai 224.09 menunjukkan tepi yang sangat kuat, sementara nilai 43.48 menunjukkan tepi yang lemah. Sementara itu, bagian arah tepi menunjukkan ke mana arah perubahan intensitas tersebut, dalam satuan derajat. Arah mendekati 180° berarti tepi cenderung horizontal, sedangkan arah mendekati 90° menunjukkan tepi vertikal. Dengan begitu, kita bisa mengetahui tidak hanya posisi dan kekuatan tepi, tetapi juga orientasinya dalam gambar.
Langkah 3: Non-Maximum Suppression
Proses untuk mengurangi tepi yang tidak merupakan puncak lokal.
Petunjuk:Klik tombol Mulai Hitung, lalu klik Lanjut untuk melanjutkan proses.
NMS akan mempertahankan piksel dengan nilai magnitudo tertinggi sepanjang arah gradiennya.
Perhitungan:
Hasil NMS (Non-Maximum Suppression) berfungsi untuk menyaring piksel yang bukan merupakan puncak lokal di arah tepinya, sehingga hanya tepi yang paling tajam yang dipertahankan. Nilai 1 menunjukkan bahwa piksel tersebut adalah maksimum lokal dan dianggap sebagai bagian dari tepi yang signifikan. Sebaliknya, nilai 0 berarti piksel tersebut ditekan (dihilangkan) karena bukan puncak tertinggi dalam arah tepinya. Misalnya, piksel kanan bawah memiliki magnitudo 43.48 dan arah 174.8°, tetapi bernilai 0 di NMS karena bukan nilai tertinggi dibanding tetangganya di arah yang sama. Dengan cara ini, hasil deteksi tepi menjadi lebih tipis dan akurat.
Langkah 4: Double Thresholding
Kita juga dapat menyaring hasilnya agar
hanya tepi yang kuat
yang ditampilkan. Untuk menentukan high threshold dan low threshold kita menggunakan rumus
berikut.
Untuk low threshold, kita menentukan nilai α (alpha), terlebih dahulu. Nilainya tergantung pada nilainya tergantung pada karakteristik gambar (kontras, noise, detail), kebutuhan aplikasi. Disini kita atur nilai α yaitu 0,7
Klik tombol Mulai Hitung, lalu klik Lanjut untuk melanjutkan proses.
Perhitungan:
Penjelasan:
Hasil double threshold menunjukkan bahwa hanya kolom terakhir yang dianggap non-edge (0), karena nilai magnitudonya rendah. Kolom lainnya tergolong weak (0.5) atau strong edge (1). Ini membantu memisahkan tepi kuat dari yang lemah dalam deteksi tepi.
Langkah 5: Edge Tracking by Hysteresis
Terakhir, kita akan melakukan edge tracking by hysteresis untuk menghubungkan tepi lemah dan tepi kuat.
Petunjuk:Klik tombol Mulai Hitung, lalu klik Lanjut untuk melanjutkan proses.
Perhitungan:
Penjelasan:
Hasil edge tracking by hysteresis menunjukkan bahwa hanya weak edge (0,5) yang terhubung ke strong edge (1) yang dipertahankan sebagai tepi. Weak edge yang tidak terhubung, seperti di pojok kanan bawah, dihilangkan (menjadi 0).
Aktivitas 14
Kerjakan aktivitas berikut untuk menguji pemahaman dan menambah nilai progresmu!Gambar 6.3 menunjukkan citra berukuran 4x4 beserta nilai pikselnya.
![]() |
|
Gambar 6.3 Matriks citra 4x4
Matriks di bawah ini merupakan kernel gaussian blur (dengan standar deviasi σ ≈ 1) dan kernel operator Sobel.
|
\(
\text{Gaussian Blur}_{(\sigma = 1)} =
\begin{bmatrix}
0.0625 & 0.125 & 0.0625 \\
0.125 & 0.25 & 0.125 \\
0.0625 & 0.125 & 0.0625
\end{bmatrix}
\)
|
|
\(
Sobel_x =
\begin{bmatrix}
-1 & 0 & 1 \\
-2 & 0 & 2 \\
-1 & 0 & 1
\end{bmatrix}
\)
|
\(
Sobel_y =
\begin{bmatrix}
-1 & -2 & -1 \\
0 & 0 & 0 \\
1 & 2 & 1
\end{bmatrix}
\)
|
