Algoritma Sobel pada Pengolahan Citra Digital
Pada kesempatan kali ini saya ingin sedikit membahas tentang salah satu algoritma deteksi tepi pada pengolahan citra digital yaitu Algoritma Sobel. Bahasan kali ini saya ambil dari laporan awal Final Project Mata Kuliah Pengolahan Citra Digital atau bahasa kerennya Digital Image Processing. FP saya kerjakan bersama dengan sahabat saya, Fadhilah Kurnia Putri. FP kami adalah membuat deteksi sidik jari dengan citra telapak tangan. Langkah awal adalah mendeteksi tepi telapak tangan agar diketahui posisi-posisi jari yang nantinya akan diambil buku-buku jari saja untuk diekstrak sidik jarinya. Bahasan kali ini adalah pengenalan dan implementasi deteksi tepi dengan menggunakan citra telapak tangan. tools yang digunakan adalah Matlab.
Algoritma Sobel :
Algoritma Sobel adalah algoritma
deteksi tepi yang digunakan pada citra. Algoritma sobel dipilih karena mudah
dipahami dan banyak digunakan pada penerapan deteksi tepi untuk pengolahan
citra. Langkah-langkah algoritma sobel
untuk deteksi tepi adalah sebagai berikut :
- Masing-masing pixel pada citra diambil matrix 3x3 dari pixel yang bertetangga. Misal untuk posisi pixel pada Z1 maka matrix bertetangganya,
- Hitung nilai gradient masing-masing pixel yaitu dengan cara mengurangi baris ke-3 dengan baris ke-1 untuk posisi koordinat x dan kolom ke-3 dengan kolom ke-1 untuk posisi koordinat y dengan rumus sebagai berikut,
Dari hasil
gradient pada posisi pixel (x,y) didapatkan nilai pixel baru yang menghasilkan
citra baru yang tepinya lebih terlihat daripada citra input.
- Nilai gradient yang telah dihasilkan sudah dapat digunakan untuk mendeteksi tepi, namun citra yang dihasilkan masih memungkinkan terdapat gangguan. Sehingga untuk lebih terlihat perbedaan tepi pada citra, digunakan nilai threshold yang ditentukan. Nilai threshold ini adalah nilai minimal yang diijinkan untuk nilai masing-masing pixel. Sehingga apabila nilai pixel hasil gradient kurang dari threshold maka nilai akan diubah menjadi sama dengan threshold.
Contoh Penerapan Algoritma Sobel :
Gambar diatas adalah contoh
penerapan algoritma sobel, Gambar kiri adalah gambar input citra abu-abu, gambar
tengah adalah hasil citra sobel dengan menggunakan gradient saja, sedangkan
gambar sebelah kanan adalah hasil citra sobel dengan menggunakan threshold.
Source Code :
Source
Code
|
Penjelasan
|
A=imread('tangan.png');
|
Fungsi untuk menjadikan
binary image dari image input “tangan.png”
|
B=rgb2gray(A);
|
Mengubah image menjadi
citra abu-abu
|
figure,imshow(B); title('Gray Image');
|
Menampilkan image yang
dihasilkan B dengan judul “Gray Image”
|
C=double(B);
|
Mengubah hasil binary B ke
nilai double
|
for i=1:size(C,1)-2
for
j=1:size(C,2)-2
|
Perulangan pada semua
pixel image dari pixel 1 sampai jumlah pixel-2. Karena yang diambil hanya 3
tetangga sehingga untuk 2 pixel terakhir tidak diubah
|
%pixel x
Gx = ((C(i+2,j)+2*C(i+2,j+1)+C(i+2,j+2))-(C(i,j)+2*C(i,j+1)+C(i,j+2)));
|
Nilai sobel masing-masing
posisi pixel pada citra pada koordinat x, baris 3 – baris 1 pada matrix 3x3
yang bertetangga
|
%pixel y
Gy = ((C(i,j+2)+2*C(i+1,j+2)+C(i+2,j+2))-(C(i,j)+2*C(i+1,j)+C(i+2,j)));
|
Nilai sobel masing-masing
posisi pixel pada citra pada koordinat y, kolom 3 – kolom 1 pada matrix 3x3
yang bertetangga
|
%gradient pada masing-masing
pixel
B(i,j)=sqrt(Gx.^2+Gy.^2);
end
end
|
Fungsi untuk mendapatkan
gradient pada citra sesuai rumus algoritma sobel pada setiap posisi x dan y
|
figure,imshow(B); title('Sobel gradient');
|
Menampilkan citra hasil
gradient sobel dengan judul “Sobel Gradient”
|
%nilai threshold
Thresh=150;
B=max(B,Thresh);
B(B==round(Thresh))=0;
B=uint8(B);
|
Mendefinisikan nilai batas
maksimal dari masing-masing pixel yang dihasilkan. Threshold yang diambil adalah
150, sehingga apabila kurang dari 150 maka akan diubah menjadi 150.
|
figure,imshow(B);title('Edge detected Image');
|
Menampilkan hasil dari
citra yang telah ditentukan thresholdnya dengan judul “edge detected image”.
|
Screenshot hasil program
:
yang nemuin teori keren ya (y)
BalasHapusnice share
BalasHapusditunggu posting menarik lainnya mengenai pengolahan citra
terima kasih