SUBBAB 5: Operator Turunan Kedua
Setelah selesai mempelajari materi, mahasiswa diharapkan:
- Mampu mengenal konsep dan bentuk kernel operator LoG.
- Mampu melakukan konvolusi citra dengan kernel LoG menggunakan teknik padding.
- Mampu melakukan tahapan lanjutan operator laplace, yaitu zero crossing, hitung erbedaan nilai dan thresholding.
LoG (Laplacian of Gaussian) adalah cara mendeteksi tepi pada gambar yang menggabungkan dua langkah utama:
- Menghaluskan gambar (blur) menggunakan Gaussian filter untuk meredam noise.
- Mendeteksi tepi menggunakan operator Laplacian (turunan kedua).
Gabungan ini menghasilkan deteksi tepi yang lebih bersih dan akurat, terutama pada gambar yang banyak gangguan (noise).
Jadi, LoG = Gaussian blur + Laplacian
Kenapa perlu Laplacian of Gaussian?
Deteksi tepi menggunakan operator Laplacian langsung (tanpa blur) sering kali menghasilkan banyak tepi palsu. Hal ini disebabkan oleh noise, yaitu perbedaan kecil dan acak antar piksel yang terbaca sebagai perubahan tajam, sehingga terdeteksi sebagai tepi.
⚠️ Masalahnya:
- Noise sering menyebabkan zero-crossing palsu
- Akibatnya, gambar jadi penuh dengan "tepi" yang sebenarnya bukan tepi
✅ Solusinya:
- Lakukan Gaussian blur terlebih dahulu
- Kemudian terapkan operator Laplacian
- Atau gabungkan keduanya langsung menjadi LoG
Rumus fungsi LoG secara matematis:
$$ LoG(x, y) = -\frac{1}{\pi \sigma^4} \left[1 - \frac{x^2 + y^2}{2\sigma^2}\right] e^{-\frac{x^2 + y^2}{2\sigma^2}} $$
Keterangan:
x,y: posisi piksel relatif dari pusatσ: standar deviasi dari Gaussian- Bentuk eksponensial berasal dari fungsi Gaussian
Dari mana rumus ini berasal?
Rumus LoG berasal dari proses menghitung turunan kedua dari fungsi Gaussian 2D. Proses ini menghasilkan bentuk baru yang disebut Laplacian of Gaussian (LoG).
Fungsi Gaussian:
\[ G(x, y) = \frac{1}{2\pi\sigma^2} \, e^{-\frac{x^2 + y^2}{2\sigma^2}} \]
Ketika kita hitung turunan keduanya terhadap \( x \) dan \( y \), lalu dijumlahkan, kita mendapatkan:
\[ \nabla^2 G(x, y) = \text{Laplacian of Gaussian (LoG)} \]
Dengan kata lain: LoG adalah versi turunan kedua dari Gaussian blur.
Filter LoG tidak tetap seperti Sobel atau Prewitt. Kernel-nya bergantung pada nilai sigma (σ) dan biasanya dibangkitkan dengan rumus di atas. Semakin besar σ, semakin melebar dan halus bentuk filternya. Beriktu adalah contoh kernel LoG dengan dengan σ (sigma) ≈ 1.0
$$ \begin{bmatrix} 0 & 0 & -1 & 0 & 0 \\ 0 & -1 & -2 & -1 & 0 \\ -1 & -2 & 16 & -2 & -1 \\ 0 & -1 & -2 & -1 & 0 \\ 0 & 0 & -1 & 0 & 0 \\ \end{bmatrix} $$
Thresholding pada LoG adalah proses menentukan apakah suatu zero crossing cukup signifikan untuk dianggap sebagai tepi. Berikut adalah langkah-langkah thresholding pada LoG.
- Lakukan konvolusi citra dengan kernel LoG → menghasilkan peta respons LoG (berisi nilai positif dan negatif).
- Cari zero crossing → titik di mana nilai tetangga berubah tanda.
Contoh Perhitungan dengan Operator LoG
Gambar 5.7 di bawah ini merupakan citra 4x4 beserta nilai pikselnya yang akan kita gunakan untuk mendeteksi tepi dengan operator LoG.
|
|
Gambar 5.7 Matriks 4x4 untuk perhitungan operator LoG
Kita akan melakukan pendeteksian tepi pada matriks di atas menggunakan operator LoG dan teknik edge padding.
Langkah 1: Teknik Edge Padding
Langkah pertama yang dilakukan sebelum proses konvolusi adalah menerapkan 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 oleh filter tanpa kehilangan informasi di bagian tepi, terutama saat menggunakan kernel berukuran besar seperti 5x5.
Menentukan Jumlah Padding:- Ukuran filter: \( f = 5 \)
- Maka padding: \( p = \left\lfloor \frac{5 - 1}{2} \right\rfloor = 2 \)
- Tambahkan 2 baris di atas dan bawah serta 2 kolom di kiri dan kanan
Berikut adalah hasil matriks setelah dilakukan teknik edge padding terhadap matriks input pada gambar:
Langkah 2: Konvolusi dengan Kernel LoG
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: \( 5 \times 5 \)
- Padding: \( p = 2 \)
- Stride: \( 1 \)
- Maka ukuran output: \[ \left( \frac{4 - 5 + 2 \times 2}{1} \right) + 1 = \left( \frac{-1 + 4}{1} \right) + 1 = (3) + 1 = 4 \] Jadi, ukuran output adalah \( 4 \times 4 \)
Selanjutnya, kita akan melakukan konvolusi.
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:
Nilai konvolusi yang tinggi (seperti 227 dan -382) yang menunjukkan lokasi dengan perubahan intensitas tajam, artinya ada tepi terdeteksi. Nilai dengan nilai yang besar itu muncul karena transisi dari piksel gelap ke terang secara mendadak di bagian tengah citra yang membentuk pola vertikal.
Langkah 3: Cari Zero Crossing
Di langkah ini, kita mencari titik di mana nilai Laplace berubah tanda (zero crossing) di antara tetangga-tetangganya. Titik-titik ini penting untuk mendeteksi tepi citra yang signifikan.
Perhitungan:
Hasil zero crossing menunjukkan posisi tepi dengan nilai 1, yaitu tempat terjadinya perubahan tanda (positif ke negatif atau sebaliknya) pada hasil LoG. Titik-titik ini menandai lokasi di mana terjadi perbedaan intensitas yang signifikan yang mengindikasikan keberadaan tepi. Area dengan nilai 0 berarti tidak ada perbedaan tanda pada tetangganya, sehingga tidak dianggap sebagai tepi.
Aktivitas 13
Kerjakan aktivitas berikut untuk menguji pemahaman dan menambah nilai progresmu!Gambar 5.8 di bawah ini merupakan citra 4x4 beserta nilai pikselnya.
![]() |
|
Gambar 5.8 Matriks citra 4x4
Berikut adalah kernel LoG dengan σ (sigma) ≈ 1.0.
$$ \begin{bmatrix} 0 & 0 & -1 & 0 & 0 \\ 0 & -1 & -2 & -1 & 0 \\ -1 & -2 & 16 & -2 & -1 \\ 0 & -1 & -2 & -1 & 0 \\ 0 & 0 & -1 & 0 & 0 \\ \end{bmatrix} $$
