Top Banner
11/22/2009 1 Deteksi Tepi (Edge Detection) Yeni Herdiyeni Departemen Ilmu Komputer FMIPA IPB www.ilkom.fmipa.ipb.ac.id/yeni Deteksi Tepi Deteksi tepi (Edge detection) adalah operasi yang dijalankan untuk mendeteksi garis tepi (edges) yang membatasi dua wilayah citra homogen yang memiliki tingkat kecerahan yang berbeda (Pitas 1993). Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. Edge adalah beberapa bagian dari citra di mana intensitas kecerahan berubah secara drastis.
15

Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

Mar 09, 2019

Download

Documents

NguyenKiet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

1

Deteksi Tepi (Edge Detection)Yeni Herdiyeni

Departemen Ilmu Komputer FMIPA IPB

www.ilkom.fmipa.ipb.ac.id/yeni

Deteksi Tepi

• Deteksi tepi (Edge detection) adalah operasi yang dijalankan untuk mendeteksi garis tepi (edges) yang membatasi dua wilayah citra homogen yang memiliki tingkat kecerahan yang berbeda (Pitas 1993).

• Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva.

• Edge adalah beberapa bagian dari citra di mana intensitas kecerahan berubah secara drastis.

Page 2: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

2

Edge

Deteksi Edge

• Edge adalah beberapa bagian dari citra di mana intensitas kecerahan berubah secara drastis.

• Dalam objek berdimensi 1, perubahan dapatdiukur dengan menggunakan fungsi turunan(derivative function).

• Perubahan mencapai maksimum pada saat nilaiturunannya pertamanya mencapai nilaimaksimum atau nilai turunan kedua (2nd

derivative) bernilai 0.

Page 3: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

3

Edge Detection Using the Gradient

• Properties of the gradient:

− The magnitude of gradient

provides information about

the strength of the edge

− The direction of gradient is

always perpendicular to the

direction of the edge

• Main idea:

− Compute derivatives in x and y directions

− Find gradient magnitude

− Threshold gradient magnitude

Edge Detection Using the Gradient

• Estimating the gradient with finite differences

− Approximation by finite differences:

Page 4: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

4

Edge Detection Using the Gradient

• Using pixel-coordinate notation (remember: j corresponds

to the x direction and i to the negative y direction):

Edge Detection Using the Gradient

• Example:

− Suppose we want to

approximate the gradient

magnitude at z5

• We can implement I/ x and I/ y using the following masks:

Note: Mx is the approximation at (i, j + 1/2)

and My is the approximation at (i + 1/2, j)

Page 5: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

5

Edge Detection Using the Gradient

• The Roberts edge detector

• This approximation can be implemented by the following masks:

Note: Mx and My are approximations at (i + 1/2, j + 1/2)

Edge Detection Using the Gradient

• The Prewitt edge detector

− The partial derivatives can be computed by:

Note: Mx and My are approximations at (i, j))

− Consider the arrangement of

pixels about the pixel (i, j):

− The constant c implies the emphasis given to pixels closer to the

center of the mask.

− Setting c = 1, we get the Prewitt operator:

Page 6: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

6

Algoritme Deteksi Tepi

• Robert Operator

• Sobel Operator

• Prewitt Operator

• Canny Operator

• Laplacian operator

• dan lain-lain.

Edge Detection Using the Gradient

• The Sobel edge detector

Note: Mx and My are approximations at (i, j))

− Setting c = 2, we get the Sobel operator:

Page 7: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

7

Edge Detection Using the Gradient

(an example using the Prewitt edge detector - don’t divide by 2)

Operator Robert

• Robert Operator menggunakan operator gradient berukuran 2 x 2 :

• Gradient magnitude

• Karena operator Robert hanya menggunakanconvolution mask berukuran 2 x 2, maka operator Robert sangat sensitive terhadap noise.

Page 8: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

8

Operator Sobel #1

• Operator Gradient 3 x 3

• Operator Sobel melakukan deteksi tepidengan memperhatikan tepi vertical danhorizontal.

Operator Sobel #2

• Gradient Magnitude

Page 9: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

9

Operator Prewitt

• Operator Prewitt menggunakan 8 (delapan) buah kernel operator gradient

Implementasi Matlab• Deteksi tepi dengan operator Prewitt

citra=imread('cameraman.tif');ic = citra (:,:,1);

px=[-1 0 1;-1 0 1;-1 0 1]; %% Deteksi Vertikalicx=filter2(px,ic); % convolutionfigure,imshow(icx/255);

py=px'; %% Deteksi Horizontalicy=filter2(py,ic);figure,imshow(icy/255);

edge_p=sqrt(icx.^2+icy.^2);figure,imshow(edge_p/255);

edge_t=im2bw(edge_p/255,0.3);figure, imshow(edge_t);

Page 10: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

10

Edge Detection Using the Gradient

• Example:

Idx

d

Idy

d

Edge Detection Using the Gradient

• Example – cont.:

22

Idy

dI

dx

d

Page 11: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

11

Edge Detection Using the Gradient

• Example – cont.:

100Threshold

Edge Detection Using the Gradient

Page 12: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

12

Edge Detection Using the Gradient

Image Gradient

• Perubahan intensitas kecerahan dapatdihitung dengan menggunakan gradient citra(image gradient).

Page 13: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

13

Edge Detection Using the Gradient

• Definition of the gradient:

• To save computations, the magnitude of gradient is usually

approximated by:

Gradient Magnitude

• gradient magnitude. Gradient Magnitude dapat dihitung dengan cara:

Page 14: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

14

Effects of noise• Consider a single row or column of the image

– Plotting intensity as a function of position gives a signal

Where is the edge?

Where is the edge?

Solution: smooth first

Look for peaks in

Page 15: Deteksi Tepi (Edge Detection)yeni/files/ppcd/Kuliah09...•Tujuannya adalah untuk mengubah citra 2D menjadi bentuk kurva. •Edge adalah beberapa bagian dari citra di mana intensitas

11/22/2009

15

Derivative theorem of convolution

• This saves us one operation:

Tugas #3

• Buat program deteksi Tepi dengan menggunakan operator

– Robert

– Prewitt

– Sobel

• Program tidak boleh menggunakan fungsi MATLAB