algoritma sobel untuk deteksi karakter pada plat nomor kendaraan bermotor

6
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09 1 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

Upload: jans-hendry

Post on 04-Jul-2015

2.372 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

1

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

Page 2: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

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

Page 3: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

3

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));

Page 4: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

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:

Page 5: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

5

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

Page 6: ALGORITMA SOBEL UNTUK DETEKSI KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR

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