You are on page 1of 6

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA


PLAT NOMOR KENDARAAN BERMOTOR

Edge atau tepi merupakan representasi dari batas objek dalam citra. Hal ini merupakan permasalahan
mendasar dan penting dalam pengolahan citra digital. Yang perlu diingat adalah edge memiliki nilai
intensitas yang sangat kontras dibandingkan dengan piksel di sebelahnya (neighborhood). Deteksi tepi
bisa menjadi sebuah filter untuk menghilangkan informasi yang tidak dibutuhkan, atau lebih sering
disebut sebagai noise atau derau. Dengan deteksi tepi, struktur dari properti atau objek dalam citra
tetap dipertahankan.

Algoritma Sobel merupakan salah satu algoritma dari edge detection pada citra digital yang berbasis
pada nilai gradient. Algoritma ini digunakan untuk citra biner. Citra biner merupakan citra yang
bernilai antara 0 dan 1 atau sering disebut sebagai grayscale. Metode gradient adalah metode yang
mendeteksi pinggir objek dengan mencari nilai maksimum dan minimum dari turunan pertama citra
tersebut. Selain gradient ada juga basis dari algoritma deteksi pinggir, yakni Laplacian. Laplacian
didasarkan pada turunan kedua dari citra tersebut. Untuk lebih jelas perhatikan gambar (2) untuk
gradient dan gambar (3) untuk laplacian.

Gambar (1). Isyarat Asli

Gambar (2). Isyarat Gradient

1
Gambar (3). Isyarat Laplacian

Gambar (1) menujukkan gradient atau turunan pertama dari isyarat asli yang ditunjukkan oleh gambar
(1) berbentuk 1-D. Tampak bahwa turunan pertama ini menghasilkan nilai maksimum di pusat
koordinat. Artinya adalah lokasi piksel edge berada pada titik tersebut bila melebihi nilai ambang
yang ditetapkan. Metode lain adalah laplacian, dengan menggunakan turunan kedua, akan
menghasilkan nilai minimum di pusat koordinat. Nilai ambang sangat dibutuhkan disini, karena akan
menentukan nilai intensitas mana yang dianggap sebagai edge dan mana yang bukan.

Algoritma Sobel memiliki operator konvolusi yang disebut juga sebagai operator sobel atau kernel
sobel. Kernel ini berukuran 3x3 yang terdiri atas 2 buah kernel, untuk horizontal (Gx) dan vertikal
(Gy). Kernel tersebut dioperasikan secara konvolusi dengan piksel pada citra dalam arah x dan arah y.
Kernel ini ditunjukkan oleh gambar (4).

Gambar (4). Kernel Sobel

Lalu dihitung magnitude dari gradient nya.

Gambar (5). Magnitude gradient untuk sobel

Algoritma sobel memang sering digunakan sebagai edge detecting algorithm tapi tentu memiliki
kekurangan. Kekurangannya adalah citra digital tidak bisa dilepaskan dari kehadiran derau.
Masalahnya ketika citra ini dikonvolusikan dengan kernel sobel, yang terjadi adalah derau tersebut
juga ikut di proses, sehingga derau menjadi bagian dari hasil algoritma sobel. Hal ini tentu tidak
diharapkan, sehingga perlu adanya filter terhadap derau yang harus diberikan terlebih dahulu. Filter
yang sering digunakan adalah filter statistik, yakni filter median. Algoritma sobel bagus jika
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

diterapkan pada data yang sangat besar, sehingga SNR nya menjadi semakin besar dan kehadiran
derau masih bisa ditoleransi. Operator sobel bisa saja berukuran lebih dari 3, tetapi ada rumusan untuk
itu, karena dengan ukuran lebih besar maka diharapkan derau juga bisa dihilangkan. Sebaiknya juga
gunakan ukuran ganjil, agar hasil konvolusinya didasarkan pada titik tengah dan operator memiliki
titik tengah.

Sebenarnya, matlab telah menyediakan toolbox khusus untuk algoritma ini, yakni:

image = edge(image,’sobel’)

tapi dalam artikel ini, akan dicoba membuat program sendiri dengan langkah-langkah dari
penggunaan algoritma Sobel.

1. Lakukan filter untuk mengurangi derau pada citra.


2. Lalu filter dengan operasi konvolusi pada citra dengan kernel sobel. Ingat lakukan secara
terpisah untuk Gx dan Gy. Sehingga dihasilkan intensitas baru yakni Ix dan Iy secara terpisah.
3. Lalu estimasi magnitude gradient untuk tiap piksel menggunakan persamaan:

4. Dengan memberikan nilai ambang atau threshold terhadap magnitude gradient, maka didapat
citra yang berisi hasil dari edge detection.

Untuk pemrograman dengan matlab, ikuti langkah-langkah berikut ini:

1. Baca citra asli yang akan dideteksi tepinya.

I=imread('jogja','jpg');
imshow(I), title('Citra Asli');

2. Konversi citra menjadi grayscale.

Ig=rgb2gray(I);

3. Haluskan citra untuk menghilangkan derau dengan filter median.


Igm=medfilt2(Ig,[3 3]);

4. Terapkan operasi sobel

Mx=[-1 0 1;-2 0 2;-1 0 1];


My=-Mx';
Gy=imfilter(double(Igm),My,'conv');
Gx=imfilter(double(Igm),Mx,'conv');
M=sqrt(Gx.^2+Gy.^2);

5. Buatlah nilai ambang yang diinginkan.


Yang perlu anda perhatikan adalah, algoritma untuk threshold bisa anda gunakan
yang mana saja. Dalam hal ini saya menggunakan algoritma global threshold. Tapi
algoritma ini, saya modifikasi untuk menghasilkan citra yang lebih bagus.

mmax=max(max(M));

3
mmin=min(min(M));
T=(mmax+mmin)/2;
T=(T/mmax); % normalisasi threshold
M=M/mmax;
miu1=.1;
miu2=.2;
del_miu=abs(miu1-miu2);
[r c]=size(M);
an=1;
while an<=500
for ii=1:r
for jj=1:c
if M(ii,jj)<T
M1(ii,jj)=M(ii,jj);
else
M2(ii,jj)=M(ii,jj);
end
end
end

miu1=mean2(M1);
miu2=mean2(M2);
T=(miu1+miu2)*2;
an=an+1;
end

for ii=1:r
for jj=1:c
if M(ii,jj)<T
M(ii,jj)=0;
else
M(ii,jj)=1;
end
end
end

6. Lalu tampilkan hasil proses Sobel.


Dalam hal ini, diberikan juga sebagai pembanding yakni algoritma sobel yang secara
otomatis dihasilkan oleh matlab.

[Igms,thres]=edge(Igm,'sobel');
figure, imshow(M), title('Citra Hasil Sobel Filtering');
figure, imshow(Igms,[]), title('Citra Hasil Sobel Filtering');

Hasil eksekusi dari program di atas adalah:


Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

Perlu diingat bahwa aktifitas ini bersifat subyektif. Artinya kualitas dari filter tersebut dalam
menghasilkan edge yang diinginkan tergantung pada pemrogram. Sehingga bila dirasa sudah cukup
memberikan hasil yang maksimal, maka program sudah dapat dikatakan berhasil. Semoga artikel ini
dapat membantu anda, untuk filter edge detection yang lain, akan ditulis dalam artikel berbeda.

TERIMA KASIH
5
Referensi:

- Vincent, O.R., Folorunso, O. A descriptive algorithm for Sobel image edge detection.

- R. Gonzalez and R. Woods. Digital Image Processing. Addison Wesley

- http://www.pages.drexel.edu/~weg22/edge.html

- www.image.google.co.id

You might also like