• Tidak ada hasil yang ditemukan

Edge Detection

N/A
N/A
Protected

Academic year: 2021

Membagikan "Edge Detection"

Copied!
14
0
0

Teks penuh

(1)

3 TT

PRAKTIKUM C

EDGE DETECTION

Penentuan tepian suatu objek dalam citra merupakan salah satu wilayah pengolahan citra digital yang paling awal dan paling banyak diteliti. Proses ini seringkali ditempatkan sebagai langkah pertama dalam aplikasi segmentasi citra, yang bertujuan untuk mengenali objek-objek yang terdapat dalam citra ataupun konteks citra secara keseluruhan.

Deteksi tepi berfungsi untuk mengidentifikasi garis batas (boundary) dari suatu objek yang terdapat pada citra. Tepian dapat dipandang sebagai lokasi piksel dimana terdapat nilai perbedaan intensitas citra secara ekstrem. Sebuah edge detector bekerja dengan cara mengidentifikasi dan menonjolkan lokasi-lokasi piksel yang memiliki karakteristik tersebut.

1. Operator Gradien

Pada citra digital f(x,y), turunan berarah sepanjang tepian objek akan bernilai maksimum pada arah normal dari kontur tepian yang bersesuaian. Sifat ini dipergunakan sebagai dasar pemanfaatan operator gradien sebagai edge detector.

Operator gradien citra konvensional melakukan diferensiasi intensitas piksel pada arah baris dan kolom, mengikuti persamaan local intensity variation berikut :

Nilai magnitudo gradien |∇(x,y)| dari persamaan di atas dapat dinyatakan sebagai berikut:

Operator gradien dapat direpresentasikan oleh dua buah kernel konvolusi Gx dan Gy, yang masing-masing mendefinisikan operasi penghitungan gradien dalam arah sumbu x dan sumbu

y yang saling tegak lurus.

Dalam kasus penghitungan gradien dengan persamaan local intensity variation, maka kernel Gx dan Gy dapat dirumuskan seperti berikut:

(2)

3 TT

I = double(imread('cameraman.tif')); % Gradien orde satu pada arah horizontal gx = [-1 1];

Ix = conv2(I,gx,'same');

% Gradien orde satu pada arah vertikal gy = [-1;1]; Iy = conv2(I,gy,'same'); % Magnitudo gradien J = sqrt((Ix.^2)+(Iy.^2)); % Gambar hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert');

Dari operator gradien konvensional di atas, dapat diturunkan berbagai operator gradien berikut:

1.1 Operator Selisih Terpusat

Operator selisih terpusat juga dikenal sebagai Centered Difference Edge Detector Mask, dan dinyatakan sebagai kernel:

I = double(imread('cameraman.tif'));

% Konvolusi dengan operator selisih terpusat d1x = [-1 0 1]; d1y = [-1;0;1]; Ix = conv2(I,d1x,'same'); Iy = conv2(I,d1y,'same'); J = sqrt((Ix.^2)+(Iy.^2)); % Gambar Hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert'); 1.2 Operator Roberts

Operator Roberts memiliki ukuran kernel sebesar 2×2, yang direpresentasikan sebagai:

(3)

3 TT

I = double(imread('cameraman.tif')); % Konvolusi dengan operator Roberts robertshor = [0 1; -1 0]; robertsver = [1 0; 0 -1]; Ix = conv2(I,robertshor,'same'); Iy = conv2(I,robertsver,'same'); J = sqrt((Ix.^2)+(Iy.^2)); % Gambar Hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Roberts (matlab toolbox) 1:

I = imread('cameraman.tif'); J = edge(I,'roberts');

figure,imagesc(I),colormap('gray'),colorbar('vert'); figure,imagesc(J),colormap('gray'),colorbar('vert'); 1.3 Operator Prewitt

Contoh perintah menggunakan operator Prewitt:

I = double(imread('cameraman.tif')); %Konvolusi dengan operator Prewitt prewitthor = [-1 0 1; -1 0 1; -1 0 1]; prewittver = [-1 -1 -1; 0 0 0; 1 1 1]; Ix = conv2(I,prewitthor,'same'); Iy = conv2(I,prewittver,'same'); J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Prewitt (matlab toolbox):

I = imread('cameraman.tif'); J = edge(I,'prewitt');

figure,imagesc(I),colormap('gray'),colorbar('vert'); figure,imagesc(J),colormap('gray'),colorbar('vert'); 1 Perintah

edge (pada toolbox Matlab) untuk mensimulasikan operator Prewitt, Roberts, Sobel, dan lainnya memiliki konsep dasar yang sama dengan operasi konvolusi kernel setiap operator secara manual. Bedanya, perintah edge menambahkan suatu skema thresholding secara otomatis, sehingga dihasilkan citra keluaran yang bersifat biner (bernilai 0 atau 1).

(4)

3 TT

Contoh perintah menggunakan operator Sobel:

I = double(imread('cameraman.tif')); %Konvolusi dengan operator Sobel sobelhor = [-1 0 1; -2 0 2; -1 0 1]; sobelver = [-1 -2 -1; 0 0 0; 1 2 1]; Ix = conv2(I,sobelhor,'same'); Iy = conv2(I,sobelver,'same'); J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Sobel (matlab toolbox):

I = imread('cameraman.tif'); J = edge(I,'sobel');

figure,imagesc(I),colormap('gray'),colorbar('vert'); figure,imagesc(J),colormap('gray'),colorbar('vert'); 1.5 Operator Isotropic

Contoh perintah menggunakan operator isotropic:

I = double(imread('cameraman.tif')); %Konvolusi dengan operator isotropic

isohor = [-1 0 1; -sqrt(2) 0 sqrt(2); -1 0 1]; isover = [-1 -sqrt(2) -1; 0 0 0; 1 sqrt(2) 1]; Ix = conv2(I,isohor,'same'); Iy = conv2(I,isover,'same'); J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil figure,imagesc(I ),colormap('gray'),colorbar('vert'); figure,imagesc(Ix),colormap('gray'),colorbar('vert'); figure,imagesc(Iy),colormap('gray'),colorbar('vert'); figure,imagesc(J ),colormap('gray'),colorbar('vert'); 1.6 Operator Compass

(5)

3 TT

Operator Compass bekerja menggunakan pola empat arah mata angin:

1.7 Operator Kirsch

(6)

3 TT

2. Operator Laplacian

Dalam kondisi transisi tepian yang lebih tidak ekstrem, penggunaan operator turunan kedua lebih dianjurkan.

Representasi turunan kedua dalam bentuk kernel operator Laplacian adalah sebagai berikut:

Dengan berbagai macam pembobotan, kernel Laplacian tersebut dapat dimodifikasi menjadi beberapa kernel konvolusi berikut :

Laplacian of Gaussian

Turunan kedua memiliki sifat lebih sensitif terhadap noise, selain itu juga menghasilkan

double edge. Oleh karena itu, operator Laplacian dalam deteksi tepi pada umumnya tidak

dipergunakan secara langsung, namun dikombinasikan dengan suatu kernel Gaussian menjadi sebuah operator Laplacian of Gaussian.

Fungsi transfer dari kernel Laplacian of Gaussian dapat dirumuskan sebagai berikut:

dimana σ merupakan standar deviasi dari kernel Gaussian.

Contoh perintah untuk mendeteksi tepian dengan menggunakan operator Laplacian of

Gaussian (Matlab toolbox) adalah:

I = imread('cameraman.tif'); J = edge(I,'log');

figure,imagesc(I),colormap('gray'),colorbar('vert'); figure,imagesc(J),colormap('gray'),colorbar('vert');

(7)

3 TT

3. Operator Canny

Salah satu algoritma deteksi tepi modern adalah deteksi tepi dengan menggunakan metoda Canny. Berikut adalah diagram blok algoritma Canny :

Contoh perintah untuk mendeteksi tepian menggunakan metoda Canny (matlab toolbox) :

I = imread('cameraman.tif'); J = edge(I,'canny');

figure,imagesc(I),colormap('gray'),colorbar('vert'); figure,imagesc(J),colormap('gray'),colorbar('vert');

4. Tugas

A. Pada percobaan dengan kernel Sobel, kernel Isotropic, dan kernel Compass, jelaskan mengenai garis abu-abu yang ditemukan pada pinggiran citra hasil konvolusi.

B. Untuk citra cameraman.tif, edge detector manakah yang memberikan hasil terbaik?

Berikan analisis mengenai pendapat anda tersebut.

C. Sensitivitas edge detector terhadap noise dapat diukur dengan menggunakan parameter

error rate sebagai berikut:

dimana:

nR : jumlah piksel yang dinyatakan sebagai edge pada citra referensi

nN : jumlah piksel yang dinyatakan sebagai edge pada citra noisy

Nilai P yang besar menyatakan sensitivitas edge detector yang tinggi terhadap noise. Dalam kasus citra cameraman.tif terkontaminasi oleh noise salt & pepper dengan

distribusi 0.02, edge detector manakah yang paling terpengaruh performansinya? Simulasikan dengan Matlab.

%Contoh perhitungan error rate untuk edge detector Sobel

%(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox) Ia = imread('cameraman.tif');

Ja = edge(Ia,'sobel');

In = imnoise(Ia,'salt & pepper',0.02); Jn = edge(In,'sobel');

nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

(8)

3 TT

Analisa

A. Pada percobaan dengan kernel Sobel, kernel Isotropic, dan kernel

Compass, jelaskan mengenai garis abu-abu yang ditemukan pada

pinggiran citra hasil konvolusi.

1. Kernel Sobel

(9)

3 TT

2.

Kernel Isotropic

Hasil program :

3. Kernel Compass Hasil program :

(10)

3 TT

Analisa :

Percobaan dengan kernel Sobel, kernel Isotropic, dan kernel Compass

digunakan untuk deteksi tepi yang berfungsi untuk mengidentifikasi garis batas

(boundary) dari suatu objek yang terdapat pada citra. Garis abu-abu yang ditemukan

pada citra konvolusi dari kernel sobel inilah yang disebut dengan garis batas (boundary)

atau yang sering disebut dengan garis tepian/ color bar. Garis Tepian dapat dipandang

sebagai lokasi piksel dimana terdapat nilai perbedaan intensitas citra secara ekstrem.

Sebuah edge detector bekerja dengan cara mengidentifikasi dan menonjolkan

lokasi-lokasi piksel yang memiliki karakteristik tersebut.

B. Untuk citra cameraman.tif, edge detector manakah yang memberikan

hasil terbaik? Berikan analisis mengenai pendapat anda tersebut.

Dikarenakan cameraman.tif juga digunakan pada operator kirsch maka perlu diketahui

juga hasil dari program tersebut. Berikut hasil programnya :

(11)
(12)

3 TT

Analisa :

Setelah mengetahui hasil dari tiap tiap edge detektor yang ada pada modul dapat

disimpulkan bahwa, hasil yang terbaik didapatkan dengan menggunakan operator

gradien karena pada operator gradien deteksi tepi dipetakan tidak hanya berdasarkan

satu sisi saja namun lebih dari satu sisi seperti pada operator prewitt dan sobel yang

dipetakan berdasarkan sumbu x dan sumbu y. Hal ini juga dikuatkan dengan jika

digunakan operator laplacian masih perlu dikombinasikan dengan kernel gaussian

karena turunan keduan memiliki sifat yang lebih sensitif terhadap noise, sehingga jika

operator laplacian sendiri tidak memberikan hasil yang baik. Begitu juga dengan

operator cany yang memtakan hanya pada satu sisi saja. Pada opator gradien sendiri

hasil terbaik diberikan oleh operator krisch yang dipetakan berdasarkan delapan sisi

yaitu k1, k2, k3, k4, k5, k6, k7 dan k8.

c.

Sensitivitas edge detector terhadap noise dapat diukur dengan menggunakan

parameter error rate sebagai berikut:

dimana:

n

R : jumlah piksel yang dinyatakan sebagai edge pada citra referensi

n

N : jumlah piksel yang dinyatakan sebagai edge pada citra noisy

Nilai P yang besar menyatakan sensitivitas edge detector yang tinggi terhadap noise.

Dalam kasus citra cameraman.tif terkontaminasi oleh noise salt & pepper dengan

distribusi 0.02, edge detector manakah yang paling terpengaruh performansinya?

Simulasikan dengan Matlab.

(13)

3 TT

Penyelesaian:

1. Operator Gradien

Operator Robert

Listing Progam:

%Contoh perhitungan error rate untuk edge detector Sobel %(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'roberts');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'roberts'); nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

Hasil Progam:

P = 0.1000

Operator Prewitt

Listing Progam:

%Contoh perhitungan error rate untuk edge detector Sobel %(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'prewitt');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'prewitt'); nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

Hasil Progam:

P =

0.3392

Operator Sobel

Listing Progam:

%Contoh perhitungan error rate untuk edge detector Sobel %(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'sobel');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'sobel');

nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

(14)

3 TT

Hasil Progam:

P = 0.3708

2. Operator Laplacian

Listing Progam:

%Contoh perhitungan error rate untuk edge detector Sobel %(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'log');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'log'); nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

Hasil Progam:

P = 0.2852

3. Operator Canny

Listing Progam:

%Contoh perhitungan error rate untuk edge detector Sobel %(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'canny');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'canny'); nr = sum(sum(Ja)); nn = sum(sum(Jn)); P = abs(nn-nr)/nr

Hasil Progam:

P = 0.2474

Analisa:

Dari hasil yang diperoleh nilai yang sangat terpengaruh performasinya adalah

operator sobel

Referensi

Dokumen terkait

Deteksi tepi berfungsi untuk mengidentifikasikan garis batas dari suatu objek terhadap latar belakang yang saling tumpang tindih.Saat ini telah ada beberapa metode

Untuk itu penulis mencoba membuat aplikasi deteksi tepi menggunakan metode gradien yaitu Roberts , Sobel , Prewitt , Isotropic dan Stochastic yang digunakan untuk

Penelitian-penelitian tersebut menunjukan deteksi tepi dapat digunakan untuk mengidentifikasi berbagai objek dengan tingkat akurasi tinggi, penelitian ini menggunakan ekstraksi

Mengidentifikasi jenis bibit yang unggul pada daun tanaman karet. menggunakan Metode Deteksi

Tujuan pendeteksian tepi adalahuntuk meningkatkan penampakan garisbatas suatu daerah atau objek di dalamcitra.Untuk mendeteksi tepi-tepi pada citra ini dapat digunakan

Pada pengujian pengenalan jenis bentuk wajah, metode deteksi tepi yang mempunyai tingkat keberhasilan pengenalan paling tinggi adalah metode deteksi tepi Roberts

Maka diperlukan pendeteksian tepi edge detection pada telapak tangan agar diharapkan pendeteksian citra menjadi lebih jelas untuk meningkatkan penampakan garis batas suatu daerah atau

Dimana, tepi mencirikan batas- batas objek dan karena itu tepi berguna untuk proses segmentasi dan identifikasi objek dalam citra, banyak gambar yang objeknya sama dengan bageroundnya