SUBBAB 4: Operator Kompas
- Mengenal dan memahami konsep operator Kompas untuk pendeteksian tepi.
- Memahami perhitungan untuk mendeteksi tepi dengan operator Kompas.
Operator Kompas adalah metode deteksi tepi yang bekerja dengan mendeteksi perubahan intensitas dalam berbagai arah — seperti arah jarum kompas: utara, timur, selatan, barat, dan arah diagonal. Jika hanya menggunakan satu filter, kita mungkin melewatkan tepi yang berada di sudut tertentu. Oleh karena itu, operator kompas menggunakan beberapa filter dengan orientasi berbeda untuk menangkap tepi dalam berbagai arah. Gambar 4.1 menunjukkan alat kompas yang digunakan untuk menentukan arah mata angin.
Gambar 4.1 Kompas
Bayangkan sebuah kompas! Seperti jarum kompas yang bisa menunjuk ke berbagai arah (utara, timur laut, timur, dll.), operator kompas juga memeriksa tepi dalam berbagai sudut, biasanya setiap 45°.
Gambar 4.2 menunjukkan contoh hasil pendeteksian tepi menggunakan operator Kompas.
Gambar 4.2 Hasil pendeteksian tepi operator Kompas
Jenis operator kompas yang paling populer adalah Operator Kirsch yang agresif dalam mendeteksi tepi. Operator ini menggunakan angka -5 dan 3 dalam kernel filter untuk lebih menonjolkan perubahan intensitas cahaya. Berikut adalah kernel operator Kirsch untuk delapan arah yang berbeda.
Filter Extended Sobel digunakan untuk deteksi tepi dengan orientasi pada kelipatan 45°:
| E (0°) | NE (45°) | N (90°) | NW (135°) |
|---|---|---|---|
| \[ K_E = \begin{bmatrix} -5 & 3 & 3 \\ -5 & 0 & 3 \\ -5 & 3 & 3 \end{bmatrix} \] | \[ K_{NE} = \begin{bmatrix} -5 & -5 & 3 \\ 3 & 0 & 3 \\ 3 & 3 & 3 \end{bmatrix} \] | \[ K_N = \begin{bmatrix} -5 & -5 & -5 \\ 3 & 0 & 3 \\ 3 & 3 & 3 \end{bmatrix} \] | \[ K_{NW} = \begin{bmatrix} 3 & -5 & -5 \\ 3 & 0 & -5 \\ 3 & 3 & 3 \end{bmatrix} \] |
| W (180°) | SW (225°) | S (270°) | SE (315°) |
| \[ K_W = \begin{bmatrix} 3 & 3 & -5 \\ 3 & 0 & -5 \\ 3 & 3 & -5 \end{bmatrix} \] | \[ K_{SW} = \begin{bmatrix} 3 & 3 & 3 \\ 3 & 0 & -5 \\ 3 & -5 & -5 \end{bmatrix} \] | \[ K_S = \begin{bmatrix} 3 & 3 & 3 \\ 3 & 0 & 3 \\ -5 & -5 & -5 \end{bmatrix} \] | \[ K_{SE} = \begin{bmatrix} 3 & 3 & 3 \\ -5 & 0 & 3 \\ -5 & -5 & 3 \end{bmatrix} \] |
- Arah target → diberi bobot tinggi: +5 → agar "peka" terhadap perubahan di arah itu.
- Arah lainnya → diberi bobot negatif kecil: -3 → untuk menetralkan pengaruh.
Kenapa +5 dan -3?
- Angka +5 dipilih agar area target berpengaruh besar.
- Angka -3 dipilih agar menekan kontribusi dari arah lain (bisa juga angka lain, tapi harus kontras).
- Nilai pusat bisa 0 → karena kita hanya ingin melihat perubahan terhadap tetangganya.
🔧 Bisa Ganti Angka?
Ya, di operator selain Kirsch tidak menggunakan angka +5 dan -3. Tapi:
- Harus kontras → yang satu jauh lebih besar dari yang lain.
- Tujuannya tetap: menguatkan arah target, menekan arah lain.
Di bawah ini adalah langkah-langkah mudah untuk memahami bagaimana Operator Kompas, seperti Kirsch, digunakan untuk mendeteksi tepi pada gambar:
- Menggeser Filter ke Seluruh Gambar (Konvolusi)
- I = gambar asli
- HkES = filter arah ke-k (misalnya filter arah utara, timur, dst.)
- Dk = hasil saat filter ke-k digunakan pada gambar
- Menentukan Seberapa Kuat Tepi yang Ditemukan
- EES(u,v) = seberapa kuat tepi di titik (u,v)
- Dk(u,v) = hasil dari filter arah ke-k di titik tersebut
- Kita pakai nilai mutlak (positif) karena kita hanya ingin tahu seberapa besar perubahannya, bukan arah perubahannya
- Menerapkan Thresholding
- B(u,v) = hasil biner (1 berarti ada tepi, 0 berarti tidak ada)
- EES(u,v) = kekuatan tepi di titik tersebut
- T = nilai threshold (ambang batas) yang ditentukan pengguna
Langkah pertama adalah “menempelkan” beberapa filter arah ke gambar, satu per satu, untuk melihat seberapa besar perubahan terang-gelap di tiap arah (misalnya ke utara, timur, selatan, dan barat).
\[ D_k = I * H_k^{ES} \]
Penjelasan simbol:
Setelah semua filter dicoba, kita lihat hasil mana yang nilainya paling besar. Nilai terbesar itu menandakan adanya perubahan terang-gelap paling kuat — artinya ada tepi di sana.
\[ E^{ES}(u,v) = \max ( |D_0(u,v)|, |D_1(u,v)|, |D_2(u,v)|, |D_3(u,v)| ) \]
Penjelasan:
Setelah kita tahu kekuatan tepi di setiap titik, langkah terakhir adalah menyaring hasilnya dengan ambang batas (threshold). Tujuannya adalah menghilangkan noise atau perubahan kecil yang tidak penting.
\[ B(u,v) = \begin{cases} 1, & \text{jika } E^{ES}(u,v) \geq T \\ 0, & \text{jika } E^{ES}(u,v) < T \end{cases} \]
Penjelasan:
Contoh
Gambar 4.3 menunjukkan citra ukuran 4x4 beserta nilai pikselnya yang akan kita gunakan untuk mendeteksi tepi dengan operator Kompas (Kirsch).
|
|
Gambar 4.3 Matriks citra untuk perhitungan operator Kompas
Kita akan melakukan pendeteksian tepi pada matriks di atas menggunakan operator Kirsch dan teknik edge padding.
Langkah 1: Teknik Edge Padding
Langkah pertama yang dilakukan sebelum proses konvolusi adalah melakukan teknik padding, yaitu edge padding. Teknik ini menambahkan baris atau kolom di tepi matriks dengan menyalin nilai dari elemen tepi yang ada. Tujuannya adalah agar semua piksel pada citra dapat diproses dengan filter tanpa kehilangan informasi di tepi.
Menentukan Jumlah Padding:- Ukuran filter: \( f = 3 \)
- Maka padding: \( p = \left\lfloor \frac{3 - 1}{2} \right\rfloor = 1 \)
- Tambahkan 1 baris di atas dan bawah serta 1 kolom di kiri dan kanan
Berikut adalah hasil matriks setelah dilakukan teknik edge padding terhadap matriks input pada gambar:
Langkah 2: Konvolusi dengan Kernel Kompas (Kirsch)
Sebelum memulai proses konvolusi, kita perlu menentukan ukuran matriks output yang akan dihasilkan.
Menghitung Ukuran Matriks Output:- Ukuran awal matriks (input): \( 4 \times 4 \)
- Ukuran kernel: \( 3 \times 3 \)
- Padding: \( p = 1 \)
- Stride: \( 1 \)
- Maka ukuran output: \[ \left( \frac{4 - 3 + 2 \times 1}{1} \right) + 1 = (3) + 1 = 4 \] Jadi, ukuran output adalah \( 4 \times 4 \)
Selanjutnya, kita kalikan tiap elemen citra dengan kernel Gx, lalu jumlahkan hasilnya. Begitu pula dengan kernel Gy.
Petunjuk:Gunakan dropdown untuk memilih kernel yang akan digunakan, lalu klik tombol Mulai Konvolusi.
Input Matriks
Kernel Konvolusi
Hasil Konvolusi
Perhitungan:
Perhitungan akan muncul di sini
Penjelasan: Kernel Kirsch memiliki delapan arah deteksi, sehingga jika digunakan seluruhnya dapat menghasilkan peta tepi yang lengkap dari berbagai arah. Sebagai contoh, hasil konvolusi dengan kernel Kirsch-W menyoroti tepi yang mengarah dari bawah ke atas, yaitu mendeteksi perubahan intensitas secara vertikal. Nilai besar seperti -1083 dan -420 muncul akibat perbedaan mencolok antara piksel di bagian bawah (dengan nilai kecil) dan bagian atas (dengan nilai besar). Sebaliknya, nilai kecil atau nol menunjukkan tidak adanya perubahan intensitas yang signifikan pada arah utara di area tersebut.
Langkah 3: Hitung Kekuatan Tepi (Edge Strength)
Setelah mendapatkan hasil konvolusi dari kedelapan kernel Kirsch, langkah selanjutnya adalah menghitung kekuatan tepinya. Ambil nilai maksimum dari semua titik.
Petunjuk:
Klik tombol Mulai Hitung untuk menghitung semua respons arah dan memilih nilai terbesar di setiap
piksel sebagai kekuatan tepi.
Tombol Autoplay akan menjalankan semua langkah otomatis. Gunakan Pause untuk menghentikan
sementara dan Reset untuk mengulang dari awal.
Perhitungan:
Hasil edge strength merupakan gabungan dari delapan hasil konvolusi Kirsch (N, NE, E, SE, S, SW, W, NW) pada setiap posisi piksel. Nilai pada edge strength diambil dari nilai maksimum absolut di antara kedelapan respons arah tersebut. Misalnya, nilai 149 pada btitik [0, 0] berasal dari nilai maksimum dari Kirsch-SE. Ini menunjukkan adanya tepi yang sangat kuat di titik tersebut, terutama pada arah selatan. Nilai yang lebih kecil atau nol menandakan bahwa tidak terdapat perubahan intensitas yang signifikan dalam arah mana pun di titik tersebut.
Langkah 4: Thresholding
Setelah menghitung kekuatan tepi (edge strength), langkah selanjutnya adalah menyaring hasilnya
agar hanya tepi yang kuat
yang ditampilkan. Untuk menentukan threshold kita menggunakan rumus berikut.
- Klik tombol Mulai Hitung, lalu klik Lanjut atau Autoplay untuk melanjutkan proses.
Perhitungan:
Berdasarkan hasil threshold, bagian tepi terdeteksi pada piksel [0, 1], [0, 2], [1, 1], [1, 2], [2, 1], [2, 2], [3, 1] dan [3, 2] karena nilai magnitudonya melebihi 478. Piksel-piksel ini membentuk pola vertikal di tengah, menunjukkan adanya garis tepi vertikal. Sementara piksel lainnya bernilai 0, menandakan area non-tepi.
Aktivitas 17
Kerjakan aktivitas berikut untuk menguji pemahaman dan menambah nilai progresmu!Misalnya kita punya gambar berukuran 4x4 beserta nilai pikselnya.
![]() |
|
Gambar 4.4 Matriks citra 4x4
Di bawah ini merupakan tiga matriks operator Kirsch.
| W | S | SE |
|---|---|---|
| \[ K_W = \begin{bmatrix} 5 & 5 & 5 \\ -3 & 0 & -3 \\ -3 & -3 & -3 \end{bmatrix} \] | \[ K_S = \begin{bmatrix} -3 & -3 & -3 \\ -3 & 0 & -3 \\ 5 & 5 & 5 \end{bmatrix} \] | \[ K_{SE} = \begin{bmatrix} 5 & 5 & -3 \\ 5 & 0 & -3 \\ -3 & -3 & -3 \end{bmatrix} \] |
