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 :




Komentar

  1. yang nemuin teori keren ya (y)

    BalasHapus
  2. nice share
    ditunggu posting menarik lainnya mengenai pengolahan citra
    terima kasih

    BalasHapus

Posting Komentar

Postingan Populer