Macam-macam Metode Deteksi Tepi (Edge Detection Methods)

Macam-macam Metode Deteksi Tepi (Edge Detection Methods)

Deteksi Tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah Untuk menandai bagian yang menjadi detail gambar/citra untuk memperbaiki detail dari gambar/citra yang blur, yang terjadi akrena adanya efek dari proses akuisisi citra Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Berikut adalah macam-macam metode deteksi tepi (edge detection methods) dan pengertian dari beberapa metode deteksi tepi seperti Sobel, Prewitt, Laplace, Robert, dan Canny.

 

A. Sobel

Metode ini mengambil prinsip dari fungsi laplace dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF, dan kelebihan dari metode sobel ini adalah mengurangi noise sebelum melakukan perhitungan deteksi tepi.

 

B. Prewitt

Metode Prewitt merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF.

 

C. Laplace

Metode Laplace adalah metode transformasi yang digunakan untuk penyelesaian persamaan diferensial.

 

D. Robert

Metode Robert adalah nama lain dari teknik differensial pada arah horisontal dan differensial pada arah vertikal, dengan ditambahkan proses konversi biner setelah dilakukan differensial. Maksud konversi biner adalah meratakan distribusi warna hitam dan putih.

 

E. Canny

Canny merupakan deteksi tepi yang optimal. Operator Canny menggunakan Gaussian Derivative Kernel untuk menyaring kegaduhan dari citra awal untuk mendapatkan hasil deteksi tepi yang halus.

Berikut ini kode menggunakan Matlab :

 

I = imread('IB.bmp');

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

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

sobelSx = conv2(I, SxSobel);

sobelSy = conv2(I, SxSobel);

sobel = abs(sobelSx) + abs(sobelSy);

 

LapX = [ -1 -1 -1 ; -1 8 -1 ; -1 -1 -1 ]

LapY = [ 1 -2 1 ; -2 4 -2 ; 1 -2 1 ]

laplaceX = conv2(I, LapX);

laplaceY = conv2(I, LapY);

laplace = abs(laplaceX) + abs(laplaceY);

 

robX = [ 1 0 ; 0 -1 ]

robY = [ 0 1 ; -1 0 ]

robertX = conv2(I, robX);

robertX = conv2(I, robY);

roberts = abs(robertX) + abs(robertX);

 

perX = [ -1 0 1 ; -1 0 1; -1 0 1 ]

perY = [ 1 1 1 ; 0 0 0 ; -1 -1 -1 ]

perwitX = conv2(I, perX);

perwitY = conv2(I, perY);

perwitt = abs(perwitX) + abs(perwitY);

 

Canny = edge (I,'canny');

 

subplot(2,3,1), imshow(I);title('Asli');

subplot(2,3,2), imshow(uint8(sobel));title('Sobel');

subplot(2,3,3), imshow(uint8(laplace));title('Laplace');

subplot(2,3,4), imshow(uint8(roberts));title('Roberts');

subplot(2,3,5), imshow(uint8(perwitt));title('Perwitt');

subplot(2,3,6), imshow(Canny);title('Canny');

 

saya ambil 1 contoh gambar dari hasil tersebut

Kesimpulan Gambar Cameraman :

Dari hasil gambar diatas gambar yang paling bagus adalah gambar Canny karena deteksi tepi nya lebih jelas dan noise nya lebih sedikit. Sedangkan gambar yang paling buruk adalah gambar Laplace karena terdapat banyak noise.