Analisis Citra 1

Download Report

Transcript Analisis Citra 1

Pengolahan Citra Digital
2010/2011
Kuliah 5
Analisis Citra 1: Deteksi Tepi Menggunakan
Operator Sobel dan Canny
Ditraslasikan dari slide Dr. Ioannis Ivrissimtzis
Outline
Perbedaan Orde Pertama
Gradient
Deteksi tepi Canny
Perbedaan Orde Pertama
Perbedaan tingkat pertama pada arah horizontal, vertikal dan diagonal
bisa dihitung menggunakan mask
Mask paling sederhana yang bisa digunakan untuk menghitung
perbedaan orde pertama adalah
1 1
1
1 0
1
0 1
0 1
1
0
Mask Prewitt
Menggunakan mask 3x3 , simetris terhadap titik tengah, kita dapat
memperoleh informasi tentang arah dari tepian.
Mask Prewitt dapat digunakan untuk menghitung perbedaan orde
pertama
1 1 1
0 0 0
1 1 1
1 0 1
1 0 1
1 0 1
0
1 1
1 0 1
1 1 0
1 1 0
1 0 1
0 1 1
Mask Sobel
Mask Sobel dianggap lebih robust daripada mask Prewitt untuk
menghitung perbedaan orde pertama.
Mask ini secara tidak langsung men-smooth-kan data.
1 2 1
0 0 0
1 2 1
1 0 1
2 0 2
1 0 1
0
1 2
1 0 1
 2 1 0
2 1 0
1 0 1
0 1 2
Mask Sobel
Contoh 1: Mask Sobel
1 2 1
0 0 0
1 2 1
Mendeteksi perubahan pada arah vertikal.
Yang berarti kalau mask ini memiliki respon yang baik (tinggi) tepian
horizontal.
Contoh 1
Citra asal
Nilai absolut dari mask
Sobel dengan respon
yang bagus terhadap
tepian horizontal
Nilai absolut dari mask
Sobel dengan respon
yang bagus terhadap
tepian vertikal
Contoh 2
Citra asal
Nilai absolut dari
mask Sobel diagonal
Nilai absolut dari
mask Sobel diagonal
yang lain
Outline
Perbedaan Orde Pertama
Gradient
Deteksi tepian Canny
Gradien
Gradien adalah suatu vektor yang menunjuk ke arah perubahan
intensitas terbesar dari suatu piksel.
Pada suatu citra f, gradien pada piksel (x,y) dihitung dengan:
gx 
grad( f )   
g y 
Dengan g x , g y adalah perbedaan orde pertama pada arah x dan y.
Gradien
gy
gx
y

gradien
x
Magnitude dari gradien dihitung dengan
M ( x, y )  g x2  g 2y
The gradient
gy
gx
y

gradient
x
The direction of the gradient is computed by the angle
1 
gy 
 ( x, y )  tan  
 gx 
Contoh 1
Gunakan mask Sobel untuk menghitung gradien pada titik pusat citra
A dan B
0 0 0
A  1 1 1
1 1 1
1 0 0
B  1 1 0
1 1 1
Contoh 1
Perbedaan orde pertama g x pada arah x (vertikal) adalah respon dari
mask Sobel
1 2 1
0 0 0
1 2 1
Perbedaan orde pertama g y pada arah y (horizontal) adalah respon
dari mask Sobel
1 0 1
2 0 2
1 0 1
Contoh 1
Gradien pada titik pusat A adalah
 g x   4
g    
 y  0
Gradien pada titik pusat B adalah
 g x   3
g    
 y   3
Contoh 1
A
B
 g x   4
g    
 y  0
Gradien tegak lurus terhadap tepian.
 g x   3
g    
 y   3
Contoh 3
Citra asal
Magnitude dari
gradien, hasil
aproksimasi dari
gx  g y
Versi ter-threshold dari
gambar tengah,
dengan nilai threshold
1/3 dari nilai intensitas
tertinggi pada citra
Contoh 4
Deteksi tepian dengan teknik thresholding magnitude lebih robust jika
sebelumnya digunakan proses smoothing menggunakan filter
Gaussian
Citra yang dismooth-kan
Magnitude dari
gradien yang diaproksimasi oleh
gx  g y
Versi ter-threshold dari
gambar tengah,
dengan nilai threshold
1/3 dari nilai intensitas
tertinggi pada citra.
Outline
Perbedaan orde pertama
Gradien
Deteksi tepian Canny
Deteksi Tepian Canny
Algoritma deteksi tepi canny terdiri dari langkah-langkah berikut:
1. Smooth kan citra masukan dengan filter Gaussian
2. Hitung magnitude dan sudut gradien
3. Terapkan supresi non-maxima pada magnitude gradien
4. Gunakan analisis double thresholding and connectivity untuk
mendeteksi dan menghubungajn tepian
Supresi Non-maxima
Pada larik (citra) magnitude gradien, tepian citra asal
direpresentasikan oleh ridge yang “tebal”.
Supresi non-maxima menipiskan ridge ini, dengan mempertahankan
hanya nilai maksimum lokal dari magnitude gradien M ( x, y )
Supresi Non-maxima
Supresi maximum pertama sekali mengkuantisasi sudut gradien ke
dalam empat arah.
Untuk setiap piksel, kita
temukan sektor dari sudut
gradien, selanjutnya
tentukan untuk piksel
tersebut satu dari empat
arah, horizontal, - 45°,
vertical, atau - 45°.
Supresi Non-maxima
Langkah selanjutnya adalah men-zero-kan magnitude gradien pada
suatu piksel jika nilainya kurang dari magnitude gradien pada salah
satu dari nilai piksel pada arah gradien kuantisasinya.
Sebagai contoh, jika arah gradien kuantisasi adalah horizontal, maka
kita membangdingkan M ( x, y ) dengan nilai magnitude gradien pada
sebelah kiri dan kanannya, dan men-zero-kan M ( x, y ) jika nilainya
kurang dari yang sebelah kiri atau kanannya.
Double thresholding
Kita mendefinisikan masing-masingTH , TL sebagai hreshold tinggi
dan rendah untuk nilai magnitude gradien.
Tepian diperoleh menggunakan algoritma tracking, mulai dari nilai
piksel di atas nilai threshold dan berhenti pada piksel-piksel dengan
nilai di bawah threshold.
Tracking Tepian
Algoritma tracking tepian
1. Mulai dari sebuah piksel yang bernilai di atas threshold yang belum
pernah diproses.
2. Track tepiannya, mengikuti sudut gradien terkuantisasi pada kedua
arah dan tandai semua piksel di atas nilai threshold rendah
sebagai tepian. Algoritma ini berhenti jika menemui piksel yang
nilainya berada di bawah threshold rendah.
3. Lakukan sampai semua piksel yang bernilai di atas threshold atas,
diproses.
Contoh 5
Citra asal
Gradien terthreshold dari citra
yang di-smoothkan
Hasil algoritma Canny
Ucapan Terima Kasih
• Appreciation is given to Dr. Ioannis Ivrissimtzis (Durham University,
UK), for making the origin of this teaching slides available for
download during 2009-2010.
• Slide ini adalah versi translasi dari slide ajar Dr. Ioannis Ivrissimtzis,
Durham University, UK.