• Tidak ada hasil yang ditemukan

Algoritma Robert Dan Prewitt Untuk Deteksi Tepi Objek Pada Citra Digital

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma Robert Dan Prewitt Untuk Deteksi Tepi Objek Pada Citra Digital"

Copied!
7
0
0

Teks penuh

(1)

Pengolahan citra digital

Pengolahan citra digital by Jans Hendry / by Jans Hendry / S2 TE UGM S2 TE UGM 0909

1 1

 ALGORITMA ROBERT dan PREWITT UNTUK DETEKSI

 ALGORITMA ROBERT dan PREWITT UNTUK DETEKSI

TEPI OBJEK PADA CITRA DIGITAL

TEPI OBJEK PADA CITRA DIGITAL

Operator Robert

Operator Robert mampu melakukan perhitungan gradient pada citra 2-D dengan lebihmampu melakukan perhitungan gradient pada citra 2-D dengan lebih sederhana dan cepat. Biasanya, citra yang akan diolah

sederhana dan cepat. Biasanya, citra yang akan diolah menggunakan algoritma ini merupakanmenggunakan algoritma ini merupakan citra

citra grayscalegrayscale dan begitu juga dengan citra outputnya. Nilai intensitas tiap piksel pada citradan begitu juga dengan citra outputnya. Nilai intensitas tiap piksel pada citra keluaran mewakili estimasi magnitude absolute (mutlak) dari gradient pada piksel tersebut keluaran mewakili estimasi magnitude absolute (mutlak) dari gradient pada piksel tersebut dari sebuah citra yang menjadi masukan. Kernel Robert berukuran 2x2. Kernel ini akan dari sebuah citra yang menjadi masukan. Kernel Robert berukuran 2x2. Kernel ini akan dikonvolusikan dengan citra masukan. Sama halnya dengan Sobel, kernel Robert juga terdiri dikonvolusikan dengan citra masukan. Sama halnya dengan Sobel, kernel Robert juga terdiri atas Gx (horizontal) dan Gy (vertikal). Tapi yang perlu diperhatikan adalah untuk citra yang atas Gx (horizontal) dan Gy (vertikal). Tapi yang perlu diperhatikan adalah untuk citra yang diduga memiliki derau, menggunakan kernel atau operator masking dengan dimensi yang diduga memiliki derau, menggunakan kernel atau operator masking dengan dimensi yang semakin besar akan sangat membantu untuk menghilangkan derau tersebut. Jadi memang semakin besar akan sangat membantu untuk menghilangkan derau tersebut. Jadi memang sebaiknya memilih algoritma yang bisa menyediakan dimensi kernel yang besar, walau sebaiknya memilih algoritma yang bisa menyediakan dimensi kernel yang besar, walau sebenarnya kernel yang ada bisa diperbesar dimensinya dengan rumusan tertentu.

sebenarnya kernel yang ada bisa diperbesar dimensinya dengan rumusan tertentu. Bentuk operator Robert adalah:

Bentuk operator Robert adalah:

0

0 -1-1 1

1 00

Kernel ini dirancang untuk menghasilkan respon secara maksimal terhadap

Kernel ini dirancang untuk menghasilkan respon secara maksimal terhadap edgeedge yangyang membentuk sudut 45

membentuk sudut 4500 terhadapterhadap grid grid , satu kernel untuk tiap dua orientasi yang saling tegak , satu kernel untuk tiap dua orientasi yang saling tegak  lurus. Dengan menggunakan dua buah kernel yang berbeda akan menghasilkan intensitas lurus. Dengan menggunakan dua buah kernel yang berbeda akan menghasilkan intensitas yang baru pula, Ix dan Iy. Lalu gradient dan orientasi nya dapat dihitung dengan yang baru pula, Ix dan Iy. Lalu gradient dan orientasi nya dapat dihitung dengan menggunakan persamaan untuk algoritma jenis gradient:

menggunakan persamaan untuk algoritma jenis gradient:

 ==  

 



++ 



Tapi gradient tersebut bisa juga dihitung dengan pendekatan lain yang lebih cepat Tapi gradient tersebut bisa juga dihitung dengan pendekatan lain yang lebih cepat komputasinya:

komputasinya:

 ==  +

+

Arahnya dapat dihitung dengan persamaan:

Arahnya dapat dihitung dengan persamaan:

 = ar

 = arcta

ctann





  −−

3

3

44

Sebenarnya, matlab telah

Sebenarnya, matlab telah menyediakanmenyediakan toolboxtoolbox khusus untuk algoritma ini, yakni:khusus untuk algoritma ini, yakni: image =

image = edge(‘image’,’redge(‘image’,’robert’)obert’)

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

penggunaan algoritma Robert.

1 1 00 0 0 -1-1 Gx Gy Gx Gy

(2)

terpisah untuk Gx dan Gy. Sehingga dihasilkan intensitas baru

terpisah untuk Gx dan Gy. Sehingga dihasilkan intensitas baru yakni Ix dan Iy secara yakni Ix dan Iy secara terpisah.terpisah. 3.

3. Lalu estimasi magnitude gradient untuk tiap Lalu estimasi magnitude gradient untuk tiap piksel menggunakan persamaapiksel menggunakan persamaan:n:

 ==  

 



+

+ 



4.

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

citra yang berisi hasil dari edge detectionedge detection..

Langkah-langkah dalam membuat program

Langkah-langkah dalam membuat program edge detectionedge detection menggunakan operator Sobel bisa jugamenggunakan operator Sobel bisa juga digunakan untuk operator Robert dengan mengganti matriks

digunakan untuk operator Robert dengan mengganti matriks kernel atau operatornya.kernel atau operatornya.

1.

1. Baca citra asli yang akan dideteksi tepinya.Baca citra asli yang akan dideteksi tepinya.

% baca citra dan memberikan noise salt

% baca citra dan memberikan noise salt & pepper& pepper

I=imread(

I=imread('sepatuku''sepatuku',,'jpg''jpg');); I=imnoise(I,

I=imnoise(I,'salt & pepper''salt & pepper');); imshow(I), title(

imshow(I), title('Citra Asli Terkena Noise''Citra Asli Terkena Noise');); 2.

2. Konversi citra menjadiKonversi citra menjadi grayscalegrayscale.. Ig=rgb2gray(I);

Ig=rgb2gray(I); 3.

3. Haluskan citra untuk menghilangkan derau dengan filter median.Haluskan citra untuk menghilangkan derau dengan filter median. Igm=medfilt2(I

Igm=medfilt2(Ig,[5 g,[5 5]);5]);

4.

4. Terapkan operasi RobertTerapkan operasi Robert

Mx=[1 0;0 -1]; Mx=[1 0;0 -1]; My=[0 -1;1 0]; My=[0 -1;1 0]; Gy=imfilter(double(Igm),My, Gy=imfilter(double(Igm),My,'symmetric''symmetric');); Gx=imfilter(double(Igm),Mx, Gx=imfilter(double(Igm),Mx,'symmetric''symmetric');); M=sqrt(Gx.^2+Gy.^2); M=sqrt(Gx.^2+Gy.^2); 5.

5. Buatlah nilai ambang yang diinginkan.Buatlah nilai ambang yang diinginkan.

Yang perlu anda perhatikan adalah, algoritma

Yang perlu anda perhatikan adalah, algoritma untuk untuk threshold threshold bisa anda gunakanbisa anda gunakan yang mana saja. Dalam hal

yang mana saja. Dalam hal ini saya menggunakan algoritmaini saya menggunakan algoritma global threshold global threshold . Tapi. Tapi algoritma ini, saya modifikasi untuk menghasilkan citra yang lebih

algoritma ini, saya modifikasi untuk menghasilkan citra yang lebih bagus.bagus. mmax=max(max(M)); mmax=max(max(M)); mmin=min(min(M)); mmin=min(min(M)); T=(mmax+mmin)/2; T=(mmax+mmin)/2; T=(T/mmax);

T=(T/mmax); % normalisasi threshold% normalisasi threshold

M=M/mmax;

M=M/mmax; % normalisasi citra% normalisasi citra

miu1=.1; miu1=.1; miu2=.2; miu2=.2; del_miu=abs(miu1-miu2); del_miu=abs(miu1-miu2); [r c]=size(M); [r c]=size(M); an=1; an=1; while

while an<=500an<=500 for

for ii=1:rii=1:r for

(3)

Pengolahan citra digital

Pengolahan citra digital by Jans Hendry / by Jans Hendry / S2 TE UGM S2 TE UGM 0909

3 3 if if M(ii,jj)<TM(ii,jj)<T M1(ii,jj)=M(ii,jj); M1(ii,jj)=M(ii,jj); else else M2(ii,jj)=M(ii,jj); M2(ii,jj)=M(ii,jj); end end end end end end miu1=mean2(M1); miu1=mean2(M1); miu2=mean2(M2); miu2=mean2(M2); T=(miu1+miu2)*2; T=(miu1+miu2)*2; an=an+1; an=an+1; end end for

for ii=1:rii=1:r for for jj=1:cjj=1:c if if M(ii,jj)<TM(ii,jj)<T M(ii,jj)=0; M(ii,jj)=0; else else M(ii,jj)=1; M(ii,jj)=1; end end end end end end 6.

6. Lalu tampilkan hasil proses Robert.Lalu tampilkan hasil proses Robert.

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

otomatis dihasilkan oleh matlab. [Igms,thres]=edge(Igm,

[Igms,thres]=edge(Igm,'robert''robert');); figure, imshow(M), title(

figure, imshow(M), title('Program Sendiri Untuk Robert 'Program Sendiri Untuk Robert Filtering'Filtering');); figure, imshow(Igms,[]), title(

figure, imshow(Igms,[]), title('Robert Filtering dengan Toolbox'Robert Filtering dengan Toolbox

Matlab'

Matlab'););

Hasil eksekusi dari program di atas

(4)
(5)

Pengolahan citra digital

Pengolahan citra digital by Jans Hendry / by Jans Hendry / S2 TE UGM S2 TE UGM 0909

5 5

Algoritma Prewitt

Algoritma Prewitt sebenarnya mirip dengan Sobel karena operator yang digunakan adalah 3x3.sebenarnya mirip dengan Sobel karena operator yang digunakan adalah 3x3. Matriks ini juga dikonvolusikan dengan citra masukan dalam arah x dan y. Hanya saja, filter ini Matriks ini juga dikonvolusikan dengan citra masukan dalam arah x dan y. Hanya saja, filter ini memiliki kelebihan “cepat” dibandingkan dengan Sobel. Tapi kernelnya hanya cocok untuk citra yang memiliki kelebihan “cepat” dibandingkan dengan Sobel. Tapi kernelnya hanya cocok untuk citra yang memiliki kontras tinggi dan derau yang sangat kecil. Langkah-langkah yang digunakan juga sama memiliki kontras tinggi dan derau yang sangat kecil. Langkah-langkah yang digunakan juga sama dengan algoritma di atas.

dengan algoritma di atas.

Operator Prewitt adalah: Operator Prewitt adalah:

-1 -1 0 0 11 -1 -1 0 0 11 -1 -1 0 0 11

Sebenarnya, matlab telah

Sebenarnya, matlab telah menyediakanmenyediakan toolboxtoolbox khusus untuk algoritma ini, yakni:khusus untuk algoritma ini, yakni: image =

image = edge(‘image’,’pedge(‘image’,’prewitt’)rewitt’)

Karena langkah-langka

Karena langkah-langkahnya sama, hnya sama, maka saya langsung menampilkan programnya saja:maka saya langsung menampilkan programnya saja:

% 1. baca citra

% 1. baca citra

I=imread(

I=imread('sepatuku''sepatuku',,'jpg''jpg');); imshow(I), title(

imshow(I), title('Citra Asli''Citra Asli');); % 2. grayscale citra

% 2. grayscale citra

Ig=rgb2gray(I); Ig=rgb2gray(I);

% 3. median filtering untuk menghilangkan noise

% 3. median filtering untuk menghilangkan noise

Igm=medfilt2(I Igm=medfilt2(Ig,[5 g,[5 5]);5]); 1 1 1 1 11 0 0 0 0 00 -1 -1 -1 -1 -1 -1 Gx Gy Gx Gy

(6)

-1 0 1; -1 0 1; -1 0 1]; -1 0 1]; My=[1 1 1; My=[1 1 1; 0 0 0; 0 0 0; -1 -1 -1]; -1 -1 -1]; Gy=imfilter(double(Igm),My, Gy=imfilter(double(Igm),My,'symmetric''symmetric');); Gx=imfilter(double(Igm),Mx, Gx=imfilter(double(Igm),Mx,'symmetric''symmetric');); M=sqrt(Gx.^2+Gy.^2); M=sqrt(Gx.^2+Gy.^2); figure, imshow(M), title(

figure, imshow(M), title('Gradient Dari Prewitt Filtering''Gradient Dari Prewitt Filtering');); %% Global threshold %% Global threshold mmax=max(max(M)); mmax=max(max(M)); mmin=min(min(M)); mmin=min(min(M)); T=(mmax+mmin)/2; T=(mmax+mmin)/2; T=(T/mmax);

T=(T/mmax); % normalisasi threshold% normalisasi threshold

M=M/mmax;

M=M/mmax; % normalisasi citra% normalisasi citra

miu1=.1; miu1=.1; miu2=.2; miu2=.2; del_miu=abs(miu1-miu2); del_miu=abs(miu1-miu2); [r c]=size(M); [r c]=size(M); an=1; an=1; while

while an<=100an<=100 for

for ii=1:rii=1:r for for jj=1:cjj=1:c if if M(ii,jj)<TM(ii,jj)<T M1(ii,jj)=M(ii,jj); M1(ii,jj)=M(ii,jj); else else M2(ii,jj)=M(ii,jj); M2(ii,jj)=M(ii,jj); end end end end end end miu1=mean2(M1); miu1=mean2(M1); miu2=mean2(M2); miu2=mean2(M2); T=(miu1+miu2)*2; T=(miu1+miu2)*2; an=an+1; an=an+1; end end for

for ii=1:rii=1:r for for jj=1:cjj=1:c if if M(ii,jj)<TM(ii,jj)<T M(ii,jj)=0; M(ii,jj)=0; else else M(ii,jj)=1; M(ii,jj)=1; end end end end end end [Igms,thres]=edge(Igm, [Igms,thres]=edge(Igm,'prewitt''prewitt');); figure, imshow(M), title(

figure, imshow(M), title('Program Sendiri Untuk Prewitt Filtering''Program Sendiri Untuk Prewitt Filtering');); figure, imshow(Igms,[]), title(

figure, imshow(Igms,[]), title('Prewitt Filtering dengan Toolbox'Prewitt Filtering dengan Toolbox

Matlab'

Matlab'););

hasil eksekusi program di atas: hasil eksekusi program di atas:

(7)

Pengolahan citra digital

Pengolahan citra digital by Jans Hendry / by Jans Hendry / S2 TE UGM S2 TE UGM 0909

7 7

Perlu diingat bahwa aktifitas ini bersifat subyektif. Artinya kualitas dari filter tersebut dalam Perlu diingat bahwa aktifitas ini bersifat subyektif. Artinya kualitas dari filter tersebut dalam menghasilkan

menghasilkan edgeedge yang diinginkan tergantung pada pemrogram. Sehingga bila dirasa sudah cukupyang diinginkan tergantung pada pemrogram. Sehingga bila dirasa sudah cukup memberikan hasil yang maksimal, maka program sudah dapat dikatakan berhasil. Semoga artikel ini memberikan hasil yang maksimal, maka program sudah dapat dikatakan berhasil. Semoga artikel ini dapat membantu anda, untuk filter

dapat membantu anda, untuk filter edge detectionedge detection yang lain, akan ditulis dalam artikel berbeda.yang lain, akan ditulis dalam artikel berbeda.

TERIMA KASIH TERIMA KASIH

Referensi: Referensi:

- R. Gonzalez and R.

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

Referensi

Dokumen terkait

menunjukkan bahwa pemanfaatan lingkungan sekitar sebagai sumber belajar, mempunyai banyak pengaruh bagi siswa kelas IV MI Kebonagung. Pengaruh terhadap motivasi

Jika dilihat dari pengendalian urain di atas maka dapat dipahami bahwa persediaan meliputi penghitungan fisik yang harus dilakukan setiap tahun, karena dengan cara

Laporan akhir Rancang Bangun Simulasi Alat Pengujian Kinerja dan Pembersih Rongga Injektor pada Engine D6E Excavator Volvo Seri EC210B bertujuan untuk media peraga dan saran

Bagi Muhammadiyah dengan memahami hadis-hadis di atas, secara lebih utuh, yang menjadi sabab al-hukmi bukan keterlihatan hilal, tetapi keberadaan (wujûd al-hilâl) karena

Kasein merupakan hasil pengolahan susu yang larut dalam larutan alkali dan asam pekat, mengendap dalam asam lemak, dan tidak larut dalam air, digunakan dalam

Dengan nama Retribusi Pelayanan Persampahan/Kebersihan dipungut Retribusi sebagai pembayaran atas Pelayanan Persampahan atau Kebersihan yang diselenggarakan Pemerintah

Pada dasarnya kondisi hidrologi Kota Palopo dipengaruhi oleh dua faktor utama yaitu air laut pada daerah pesisir (bagian timur kecamatan), dan air permukaan yang

Pada indikator menganalisis argumen hanya 20% mahasiswa yang mampu menguraikan jawaban sesuai kriteria 3, hal ini menunjukkan bahwa kemampuan mahasiswa dalam