Selasa, 15 Desember 2009

Perbandingan Deteksi Tepi Menggunakan Operator Prewitt dan Sobel pada Matlab

Pada tulisan kali ini kita akan mencoba melihat perbandingan deteksi tepi sebuah gambar menggunakan operator prewitt dan sobel. Operator prewitt dan sobel termasuk ke dalam operator gradien pertama.

Operator sobel

Peninjauan pengaturan pixel di sekitar pixelnya (x,y) adalah :

Operator sobel adalah magnitudo dari gradien yang dihitung dengan :

Dimana dalam hal ini turunan parsial dihitung dengan :

Dengan konstanta c = 2. Dalam bentuk mask, sy dan sx dapat dinyatakan sebagai :

Arah tepi dihitung dengan persamaan :

Berikut adalah contoh penggunaan operator sobel . Konvolusi pertama dilakukan terhadap pixel yang bernilai 1 (titik pusat mask) :

Nilai 18 pada citra hasil konvolusi didapatkan dengan perhitungan :

Operator Prewitt

Persamaan gradien pada operator prewitt sama dengan gradien pada operator sobel perbedaannya adalah pada prewitt menggunakan konstanta c = 1

Berikut adalah pengaplikasian kedua algoritma tersebut menggunakan aplikasi matlab. gambar yang penulis gunakan untuk membandingkan kedua operator di atas adalah :

Kemudian ketikkan listing program di bawah ini pada program matlab :

R=imread(‘flower.jpg’);
gray=rgb2gray(R);
BR1 = edge (gray,’prewitt’);
BR2 = edge (gray,’sobel’);
figure, imshow(BR1);
figure, imshow(BR2);

Imread berfungsi untuk membaca gambar dan variabel R adalah variabel untuk menyimpan file gambar ‘water lilies’ . BR1 adalah variabel untuk menyimpan gambar yang telah diproses menggunakan deteksi tepi operator ‘prewitt’ dan BR2 adalah variabel untuk menyimpan gambar yang telah diproses menggunakan deteksi tepi operator ’sobel’. Untuk menampilkan hasil pemrosesan menggunakan perintah ‘figure, imshow(var)’.

Hasil dari kedua deteksi tepi tersebut adalah :

Hasil operator prewitt

Hasil operator sobel

Tidak ada komentar:

Posting Komentar