![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/3.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/5.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/8.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/10.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/11.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/12.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/13.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/14.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/15.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/18.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/20.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/23.jpg)
),(),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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/24.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/30.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/33.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/35.jpg)
)),(()),((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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/36.jpg)
)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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/37.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/38.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/39.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/41.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/45.jpg)
),(*),(),( 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/46.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/47.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/53.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/54.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/55.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/61.jpg)
• 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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/63.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/68.jpg)
![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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022052310/60924719dccb012e4b6fe325/html5/thumbnails/70.jpg)
Tugas
Buatlah program pendeteksian tepi dengan menggunakan:
• Operator gradien
• Operator turunan kedua
• Operator Laplace
• Operator LoG
• Operator Sobel
• Operator Prewitt
• Operator Roberts
• Operator Canny