Anda di halaman 1dari 7
 
󰁐󰁥󰁮󰁧󰁯󰁬󰁡󰁨󰁡󰁮 󰁣󰁩󰁴󰁲󰁡 󰁤󰁩󰁧󰁩󰁴󰁡󰁬 󰁢󰁹 󰁊󰁡󰁮󰁳 󰁈󰁥󰁮󰁤󰁲󰁹 󰀯 󰁓󰀲 󰁔󰁅 󰁕󰁇󰁍 󰀰󰀹
󰀱
 ALGORITMA ROBERT dan PREWITT UNTUK DETEKSI TEPI OBJEK PADA CITRA DIGITAL
Operator Robert
 mampu melakukan perhitungan gradient pada citra 2-D dengan lebih sederhana dan cepat. Biasanya, citra yang akan diolah menggunakan algoritma ini merupakan citra
grayscale
dan begitu juga dengan citra outputnya. Nilai intensitas tiap piksel pada citra keluaran mewakili estimasi magnitude absolute (mutlak) dari gradient pada piksel tersebut 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 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 semakin besar akan sangat membantu untuk menghilangkan derau tersebut. Jadi memang sebaiknya memilih algoritma yang bisa menyediakan dimensi kernel yang besar, walau sebenarnya kernel yang ada bisa diperbesar dimensinya dengan rumusan tertentu. Bentuk operator Robert adalah: 0 -1 1 0 Kernel ini dirancang untuk menghasilkan respon secara maksimal terhadap
edge
yang membentuk sudut 45
0
 terhadap
grid 
, satu kernel untuk tiap dua orientasi yang saling tegak 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 menggunakan persamaan untuk algoritma jenis gradient:
󰀽  
 󰀫
 Tapi gradient tersebut bisa juga dihitung dengan pendekatan lain yang lebih cepat komputasinya:
 󰀽  󰀫
 Arahnya dapat dihitung dengan persamaan:
 󰀽 󰁡󰁲󰁣󰁴󰁡󰁮󰀳󰀴
 
Sebenarnya, matlab telah menyediakan
toolbox
khusus untuk algoritma ini, yakni: image = edge(‘image’,’robert’) tapi dalam artikel ini, akan dicoba membuat program sendiri dengan langkah-langkah dari penggunaan algoritma Robert.
1 0 0 -1
Gx Gy
 
1.
 
Lakukan filter untuk mengurangi derau pada citra. 2.
 
Lalu filter dengan operasi konvolusi pada citra dengan kernel Robert. 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
. Langkah-langkah dalam membuat program
edge detection
menggunakan operator Sobel bisa juga digunakan untuk operator Robert dengan mengganti matriks kernel atau operatornya. 1.
 
Baca citra asli yang akan dideteksi tepinya.
% baca citra dan memberikan noise salt & pepper
 
I=imread('sepatuku','jpg');
 
I=imnoise(I,'salt & pepper');
 
imshow(I), title('Citra Asli Terkena Noise');
 
2.
 
Konversi citra menjadi
grayscale
.
Ig=rgb2gray(I);
 
3.
 
Haluskan citra untuk menghilangkan derau dengan filter median.
Igm=medfilt2(Ig,[5 5]);
 
4.
 
Terapkan operasi Robert
Mx=[1 0;0 -1];
 
My=[0 -1;1 0];
 
Gy=imfilter(double(Igm),My,'symmetric');
 
Gx=imfilter(double(Igm),Mx,'symmetric');
 
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));
 
mmin=min(min(M));
 
T=(mmax+mmin)/2;
 
T=(T/mmax); % normalisasi threshold
 
M=M/mmax; % normalisasi citra
 
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 Robert. Dalam hal ini, diberikan juga sebagai pembanding yakni algoritma robert yang secara otomatis dihasilkan oleh matlab.
[Igms,thres]=edge(Igm,'robert');
 
figure, imshow(M), title('Program Sendiri Untuk Robert Filtering');
 
figure, imshow(Igms,[]), title('Robert Filtering dengan Toolbox Matlab');
 
Hasil eksekusi dari program di atas adalah:

Puaskan Keingintahuan Anda

Segala yang ingin Anda baca.
Kapan pun. Di mana pun. Perangkat apa pun.
Tanpa Komitmen. Batalkan kapan saja.
576648e32a3d8b82ca71961b7a986505