Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges...

70
Pendeteksian Tepi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2019

Transcript of Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges...

Page 1: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Pendeteksian Tepi

IF4073 Interpretasi dan Pengolahan Citra

Oleh: Rinaldi Munir

Program Studi Teknik InformatikaSekolah Teknik Elektro dan Informatika

Institut Teknologi Bandung2019

Page 2: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Tepi (edge)

• Tepi (edge) adalah perubahan nilai intensitas derajat keabuan yang mendadak (besar) dalam jarak yang singkat.

• Tepi memiliki arah, dan arah ini berbeda-beda pada bergantung pada perubahan intensitas

jarak

perubahan intensitas = arah tepi

Page 3: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Tepi biasanya terdapat pada batas antara dua daerah yang berbeda intensitas dengan perubahan yang sangat cepat di dalam citra.

Page 4: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Di mana tepi?

Ini tepi

Page 5: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Empat macam tepi: tepi curam (step edge), tepi landau (ramp edge), tepigaris (line edge), dan tepi atap (roof edge).

Citra dengan tepi curam Citra dengan tepi landai Breakdown tepi landai

Page 6: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra mengandung derau

Harus bisa membedakan derau dengan tepi sebenarnya

Page 7: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Sumber: Texas Instruments, Edge Detection

• Idealnya sebuah tepi berbentuk curam (kemiringan 90 derajat), namunkebanyakan tepi berbentuk landai (ramp) dan tepi yang mengandung derau

Page 8: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 9: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Tujuan Pendeteksian Tepi

• Pendeteksian tepi bertujuan untuk meningkatkan penampakan garisbatas atau objek di dalam citra.

Page 10: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Pendeteksian tepi mengekstraksi representasi gambar garis-garis di dalam citra.

Page 11: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 12: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Pendeteksian tepi berguna dalam mengenali objek di dalam citra(image recognition).

Page 13: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 14: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 15: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Pendeteksian tepi merupakan bagian dari analisis citra (image analysis).

• Tujuan analisis citra: mengidentifikasi parameter-parameter yang diasosiasikan denganciri (feature) dari objek di dalam citra, untuk selanjutnya parameter tersebut digunakandalam menginterpretasi citra.

• Analisis citra pada dasarnya terdiri dari tiga tahapan:

1. Ekstrakasi ciri (feature extraction).

Faktor kunci dalam mengekstraksi ciri adalah kemampuan mendeteksi keberadaantepi (edge) dari objek di dalam citra.

2. Segmentasi

Setelah tepi objek diketahui, langkah selanjutnya dalam analisis citra adalahsegmentasi, yaitu mereduksi citra menjadi objek atau region, misalnya memisahkanobjek-objek yang berbeda dengan mengekstraksi batas-batas objek (boundary).

3. Klasifikasi.

Langkah terakhir dari analisis citra adalah klasifikasi, yaitu memetakan segmen-segmen yang berbeda ke dalam kelas objek yang berbeda pula.

Page 16: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Gradien

• Pendeteksian tepi dapat dipahami dengan pendekatan kaklulusdiferensial.

• Sebab, perubahan intensitas yang besar dalam jarak yang singkatdipandang sebagai fungsi yang memiliki kemiringan yang besar.

• Kemiringan fungsi dapat dihitung dengan turunan pertama (gradient)

h

yxFyhxF

x

F

h

,,lim

0

Page 17: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

imageintensity function

(along horizontal scanline) first derivative

edges correspond toextrema of derivativeSource: L. Lazebnik

Sumber: Noah Snavely, CS6670: Computer Vision

Page 18: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Karena citra f(x,y) adalah fungsi dwimatra dalam bentuk diskrit, makaturunan pertamanya adalah secara parsial:

• Biasanya , sehingga

= [Gx, Gy]

x

yxfyxxf

x

yxfGx

),(),(),(

y

yxfyyxf

y

yxfGy

),(),(),(

1 yx

),(),1(),(

yxfyxfx

yxfGx

),()1,(

),(yxfyxf

y

yxfGy

dan

Page 19: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Misalkan susunan pixel-pixel di dalamcitra:

),(),1(),(

yxfyxfx

yxfGx

),()1,(),(

yxfyxfy

yxfGy

Kedua turunan parsial di atas dapatdipandang sebagai dua buah maskkonvolusi:

𝐺𝑥 =−11

𝐺𝑦 = −1 1

Diferensial maju (forward differential):

Bisa juga menggunakan mask gradien2 x 2 sebagai berikut:

Page 20: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Kekuatan tepi (edge strengthness):

• Arah tepi:

• Hasil pendeteksian tepi adalah citra tepi (edges image):

• Keputusan apakah suatu pixel merupakan tepi atau bukan tepi dinyatakan denganoperasi pengambangan:

• T adalah nilai ambang, pixel tepi dinyatakan putih (1) sedangkan pixel bukan tepidinyatakan hitam (0).

)],([),( yxfGyxg

lainnya,0

)],([jika ,1),(

TyxfGyxg

Page 21: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Sumber: Noah Snavely, CS6670: Computer Vision

Page 22: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra Gradien (turunan pertama)

Page 23: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

),(),1(),(

yxfyxfx

yxfGx

),()1,(),(

yxfyxfy

yxfGy

Contoh. Misalkan terdapat sebuah 5 5 citra dengan dua derajat keabuan sebagai berikut:

00011

00011

00111

11111

11111

Hasil perhitungan gradien setiap pixel di dalam citra adalah sebagai berikut:

Citra Gradien-x Gradien-y Arah gradien

00011

00011

00111

11111

11111

0 0 0 0 00 0 0 −1 −10 0 −1 0 00 0 0 0 0∗ ∗ ∗ ∗ ∗

0 0 0 0 ∗0 0 0 0 ∗0 0 −1 0 ∗0 −1 0 0 ∗0 −1 0 0 *

* * * * ** * *

* * * ** * * ** * * *

Page 24: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Kembali ke rumus kekuatan tepi:

• Karena menghitung akar lebih kompleks dan menghasilkan nilai riil, maka dalam praktek kekuatan tepi disederhanakan perhitungannyadengan menggunakan salah satu dari alternative:

(i) G[f(x,y)] = 22

yx GG , atau

(ii) G[f(x,y)] = yx GG , atau

(iii) G[f(x,y)] = },max{22

yx GG , atau

(iv) G[f(x,y)] = max{ }, yx GG . Persamaan (ii) dan (iv) biasanya lebih disukai

karena lebih mudah perhitungannya.

Page 25: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Efek derau di dalam citra

Dimanakah tepi?Source: S. Seitz

Noisy input image

Sumber: Noah Snavely, CS6670: Computer Vision

Page 26: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Solusi: lakukan pelembutan (image smoothing) terlebih dahulu, misalnya denganpenapis Gaussian

f

h

f * h

Source: S. SeitzSumber: Noah Snavely, CS6670: Computer Vision

Page 27: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Fungsi Gaussian (1-D)

Page 28: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Fungsi Gaussian (2-D)

Page 29: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

3 x 3 Gaussian mask

Page 30: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Operator gradien lainnya adalah operator gradien selisih-terpusat(center-difference):

• Ekivalen dengan mask:

2

),1(),1(),(),(

yxfyxf

x

yxfyxDx

2

)1,()1,(),(),(

yxfyxf

y

yxfyxDy

𝐷𝑥 =−101

𝐷𝑦 = −1 0 1

Page 31: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Turunan Kedua (Laplace)

• Turunan kedua:

• Operator turunan kedua disebut juga operator Laplace.

• Operator Laplace mendeteksi lokasi tepi lebih akurat khususnya pada tepi yang curam.

• Pada tepi yang curam, turunan keduanya mempunyai persilangan nol(zero-crossing), yaitu titik di mana terdapat pergantian tanda nilaiturunan kedua dari positif ke negative atau sebaliknya.

2

2

2

22

y

f

x

ff

Page 32: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

f(x)

f /x

2f /x2

(a) Tepi landai (b) Tepi curam

Page 33: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 34: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Penurunan rumus

• Hampiri turunan pertama dengan diferensial mundur (backward differential):

• Maka, turunan kedua = turunan pertama diturunkan lagi:

x

yxxfyxf

x

yxfxG

),(),(),()(3

y

yyxfyxf

y

yxfyG

),(),(),()(3

2

2

2

22

y

f

x

ff

))(())(( 3131 yGGxGG

x = y = 1

Page 35: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

)),(()),((1

)),(()),((1

1111 yyxfGyxfGy

yxxfGyxfGx

}),(),(),(),(

{1

}),(),(),(),(

{1

y

yyxfyxfyxfyyxf

y

x

yxxfyxfyxfyxxf

x

2)(

),(),(2),(

x

yxxfyxfyxxf

2)(

),(),(2),(

y

yyxfyxfyyxf

Dengan mengasumsikan x = y = 1, maka diperoleh:

)1,(),(2)1,(),1(),(2),1(),(2 yxfyxfyxfyxfyxfyxfyxf

)1,(),1(),(4),1()1,( yxfyxfyxfyxfyxf

Page 36: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

)1,(),(2)1,(),1(),(2),1(),(2 yxfyxfyxfyxfyxfyxfyxf

)1,(),1(),(4),1()1,( yxfyxfyxfyxfyxf

Atau dalam bentuk mask konvolusi:

010

141

010

= 0 + f(x – 1, y) + 0 +

f(x, y – 1) – 4f(x, y) + f(x, y + 1) +

0 + f(x + 1, y) + 0

Page 37: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Contoh berikut memperlihatkan memperlihatkan pendeteksian tepi vertikaldengan operator Laplace:

8888444

8888444

8888444

8888444

8888444

0

4

8

-4

0

+4

*******

*00440*

*00440*

*00440*

*******

(i) Citra semula (ii) Hasil konvolusi

Satu baris dari hasil pendeteksian tepi:

persilangan nol

Page 38: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Contoh pendeteksian tepi diagonal (miring) dengan operator Laplace:

88444444

88844444

88884444

88888444

88888844

********

*048000*

*004800*

*000480*

********

(i) Citra semula (ii) Hasil konvolusi

Page 39: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Contoh pendeteksian tepi landai dengan operator Laplace:

88885222

88885222

88885222

88885222

88885222

********

*003030*

*003030*

*003030*

********

(i) Citra semula (ii) Hasil konvolusi

Satu baris dari hasil pendeteksian tepi: 0 +3 0 –3 0

Pada contoh di atas tidak terdapat persilangan nol; lokasi tepi yang sesungguhnya ditentukan secara interpolasi.

Page 40: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Laplace lainnya:

Page 41: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Kadang-kadang diinginkan memberi bobot yang lebih pada pixeltengah di antara pixel tetangganya:

• Operator Laplace termasuk ke dalam penapis lolos-tinggi sebabjumlah seluruh koefisiennya nol dan koefisiennya mengandung nilainegatif maupun positif.

141

4204

141

Page 42: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

I = imread('camera.bmp');

figure, imshow(I);

H = [0 1 0; 1 -4 1; 0 1 0];

J = uint8(convn(double(I), double(H)));

figure, imshow(J)

* =

Page 43: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

I = imread('lada-gray.bmp');

figure, imshow(I);

H = [1 1 1; 1 -8 1; 1 1 1];

J = uint8(convn(double(I), double(H)));

figure, imshow(J)

* =

Page 44: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Laplace of Gaussian (LoG)

• Kadangkala pendeteksian tepi denganoperator Laplace menghasilkan tepi-tepipalsu yang disebabkan oleh gangguanpada gambar.

• Untuk mengurangi kemunculan tepipalsu, citra ditapis dulu dengan fungsiGaussian

Page 45: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

),(*),(),( yxGyxfyxh

),(),( 2 yxhyxk

Berdasarkan gambar di samping:

Dapat dibuktikan bahwa

),(*),()],(*),([ 22 yxGyxfyxGyxf

),(*),(),( 2 yxGyxfyxk

Jadi,

yang dalam hal ini,

2

22

2

)(

4

2222 2

),(

yx

eyx

yxG

Page 46: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Tinjau

Laplacian of Gaussian

operator

Di mana tepi? Di tempat zero-crossing

Page 47: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Fungsi 2G(x,y) merupakan turunan kedua dari fungsi Gauss

• Kadang-kadang disebut juga fungsi Laplacian of Gaussian (LoG) atau fungsi topiorang Mexico (Mexican Hat), karena bentuk kurvanya seperti topi Meksiko.

Gaussian derivative of Gaussian

Laplacian of Gaussian

adalah operator Laplace:

Page 48: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Jadi, untuk mendeteksi tepi dari citra yang mengalami gangguan, kitadapat melakukan salah satu dari dua operasi ekivalen di bawah ini:

1. konvolusi citra dengan fungsi Gauss G(x,y), kemudian lakukanoperasi Laplace terhadap hasilnya, atau

2. konvolusi citra langsung dengan penapis LoG.

Contoh penapis LoG yang berukuran 5 5:

00100

01210

121621

01210

00100

Page 49: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Mask konvolusi LoG dengan = 1.4

Page 50: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra masukan Hasil operator Laplace Hasil operator LoG

Page 51: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator gradien lainnya

• Oparator Sobel

• Operator Roberts

• Operator Prewitt

• Opreator Canny

Page 52: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Sobel

• Tinjau pengaturan pixel di sekitar pixel (x,y):

• Operator Sobel adalah magnitudo dari gradien yang dihitung dengan rumus

456

37

210

),(

aaa

ayxa

aaa

22yx ss M =

yang dalam hal ini, turunan parsial dihitung dengan

)()( 670432 acaaacaasx

)()( 4562210 acaaacaasy

Page 53: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Dengan konstanta c = 2, maka

• Dalam bentuk mask, sx dan sy dapat dinyatakan sebagai

• Arah tepi dihitung dengan persamaan

101

202

101

xS

121

000

121

ySdan

(x,y) = tan-1

x

y

S

S

𝑠𝑥 = (𝑎2 + 2𝑎3 + 𝑎4) − (𝑎0 + 2𝑎7 + 𝑎6)

𝑠𝑦 = (𝑎0 + 2𝑎1 + 𝑎22) − (𝑎6 + 2𝑎5 + 𝑎4)

456

37

210

),(

aaa

ayxa

aaa

Page 54: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Contoh:

Page 55: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Di bawah ini contoh lain pendeteksian tepi dengan operator Sobel, dimana hasilkonvolusi diambangkan dengan T = 12.

Hasil pengambangan dengan T = 12:

∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ 0 0 0 0 1 1 1 0 ∗∗ 0 0 0 1 1 1 0 0 ∗∗ 0 0 1 0 0 0 0 0 ∗∗ 0 1 1 0 0 0 0 0 ∗∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗

Page 56: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra masukan Hasil operator Sobel

%Sobel

I = imread('bird.bmp');

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

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

Jx = conv2(double(I), double(Sx), 'same');

Jy = conv2(double(I), double(Sy), 'same');

Jedge = sqrt(Jx.^2 + Jy.^2);

imshow(I);

figure, imshow(uint8(Jedge));

Page 57: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Prewitt

• Persamaan gradien pada operator Prewitt sama seperti operator Sobel, tetapi menggunakan nilai c = 1:

• Kekuatan tepi dihitung dengan rumus:

101

101

101

xP

111

000

111

yPdan

G(f(x,y)) = 𝑃𝑥2 + 𝑃𝑦

2

Page 58: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra masukan Hasil operator Prewitt

I = imread('bird.bmp');

Px = [-1 0 1; -1 0 1; -1 0 1];

Py = [-1 -1 -1; 0 0 0; 1 1 1];

Jx = conv2(double(I), double(Px), 'same');

Jy = conv2(double(I), double(Py), 'same');

Jedge = sqrt(Jx.^2 + Jy.^2);

imshow(I);

figure, imshow(uint8(Jedge));

Page 59: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Hasil operator Sobel Hasil operator Prewitt

Page 60: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Roberts

• Operator Roberts sering disebut juga operator silang

f(x, y) f(x + 1, y)

f(x + 1, y+1)f(x, y+1)

x

Gradien Roberts dalam arah-x dan arah-ydihitung dengan rumus:

),()1,1(),( yxfyxfyxR

),1()1,(),( yxfyxfyxR

Dalam bentuk mask konvolusi:

10

01R

01

10Rdan

Arah tepi dihitung dengan rumus:

Kekuatan tepi dihitung dengan rumus

Page 61: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

• Contoh berikut ini memeperlihatkan pendeteksian tepi denganoperator Roberts:

Nilai 4 pada pojok kiri atas pada citra hasil konvolusi diperoleh denganperhitungan sebagai berikut:

f ’[0,0] = │3 – 1 │ + │4 – 2 │ = 4

Page 62: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Citra masukan Hasil operator Roberts

I = imread('bird.bmp');

Rx = [1 0; 0 -1];

Ry = [0 1; -1 0];

Jx = conv2(double(I), double(Rx), 'same');

Jy = conv2(double(I), double(Ry), 'same');

Jedge = sqrt(Jx.^2 + Jy.^2);

imshow(I);

figure, imshow(uint8(Jedge));

Page 63: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 64: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Operator Canny

• Operator deteksi tepi yang terkenal karena dapat menghasilkan tepi denganketebalan 1 pixel

Page 65: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Langkah-langkah operator Canny:

• Haluskan citra I dengan penapis Gaussian:

• Hitung gradien setiap pixel dengan salah satu dari 4 operator

sebelumnya (misalnya operator Sobel)

• Jika nilai mutlak gradien suatu pixel melebihi nilai ambang T, maka

pixel termasuk pixel tepi.

IG

Page 66: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

original image (Lena)

Page 67: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

magnitude of the gradient

Page 68: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer
Page 69: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Canny with Canny with original

• The choice of depends on desired behavior

– large detects large scale edges

– small detects fine features

Page 70: Pendeteksian Tepirinaldi.munir/Citra/...(along horizontal scanline) first derivative edges correspond to Source: L. Lazebnik extrema of derivative Sumber: Noah Snavely, CS6670: Computer

Tugas

Buatlah program pendeteksian tepi dengan menggunakan:

• Operator gradien

• Operator turunan kedua

• Operator Laplace

• Operator LoG

• Operator Sobel

• Operator Prewitt

• Operator Roberts

• Operator Canny