penapisan citra dan konvolusi - institut teknologi bandungpenapisan citra dan konvolusi if4073...

42
Penapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2019

Upload: others

Post on 02-Dec-2020

28 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Penapisan Citra dan Konvolusi

IF4073 Interpretasi dan Pengolahan Citra

Oleh: Rinaldi Munir

Program Studi Teknik InformatikaSekolah Teknik Elektro dan Informatika

Institut Teknologi Bandung2019

Page 2: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Di dalam pengolahan citra, sebuah citra sering dilakukan proses penapisan(image filtering) untuk memperoleh citra sesuai dengan tujuan yang diinginkan.

f(x,y) g(x,y)

filtering

filtering

Sumber gambar: Image Fitering, CS485/685 Computer Vision, Prof. George Bebis

Page 3: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Penapisan citra berarti memodifikasi pixel-pixel di dalam citra berdasarkantransformasi terhadap nilai-nilai pixel tetangganya.

5 14

1 71

5 310

Local image data

7

Modified image data

transformasi

(x,y) (x,y)

Input image f(x,y) Output image g(x,y)

(x-1,y-1)

(x+1,y+1)

Page 4: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Sebuah operator khusus untuk penapisan citra adalah konvolusi(convolution) atau linear filering.

• Penapisan citra termasuk ke dalam tipe operasi aras lokal

Page 5: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Teori Konvolusi

• Konvolusi 2 buah fungsi f(x) dan g(x) didefinisikan sebagai berikut:

• Tanda * menyatakan operator konvolusi, dan peubah a adalah peubahbantu (dummy variable).

• g(x) disebut kernel atau mask konvolusi.

• Kernel g(x) dapat dibayangkan sebagai sebuah jendela yang dioperasikansecara bergeser pada sinyal masukan f(x)

• Jumlah perkalian kedua fungsi pada setiap titik merupakan hasil konvolusiyang dinyatakan dengan sinyal luaran h(x).

daaxgafxgxfxh )()()(*)()(

Page 6: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Contoh: Misalkan fungsi f(x) dan g(x) diperlihatkan pada gambarberikut.

Page 7: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Rumus konvolusi:

Step 1: Tentukan g(-a)

daaxgafxgxfxh )()()(*)()(

Step 2: Tentukan g(x – a )

Page 8: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

.

Page 9: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

.

Page 10: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Hasil akhir:

Page 11: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Sumber gambar: Concolution, CS485/685 Computer Vision, Prof. George Bebis

Page 12: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Konvolusi dengan fungsi impuls

• Fungsi impuls disebut juga fungsi delta dirac.

• Fungsi delta dirac bernilai 0 untuk x 0, dan “lebar” denyutnya samadengan 1.

• Secara matematis fungsi delta dirac definisikan sebagai

0,0)( xx

0

lim

1)( dxx

x

)(x

Page 13: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Sifat-sifat fungsi delta dirac:

• Bila kita bekerja dengan fungsi diskrit, maka fungsi delta yang digunakan adalah fungsi delta Kronecker, yang didefinisikan sebagai

dengan sifat

0,1

0,0)(

n

nn

m

nfmnmf )()()(

Page 14: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Hasil konvolusi f(x) dengan delta dirac (x)

f(x) (x)

Page 15: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Hasil konvolusi fungsi f(x) dengan fungsi g(x) =(x + T) + (x) + (x – T):

ba

A

a

g(a)

T

(a) (b) (c)

-T b T-T

A

f(a)

Page 16: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Kegunaan fungsi impuls: penerokan (sampling) sinyal kontinu menjadisinyal diskrit.

Page 17: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Proses penerokan dinyatakan sebagai perkalian sinyal kontinu f(t) dengan fungsipenerok berupa rentetan sinyal delta sejarak T satu sama lain.

• Fungsi penerok itu dapat dinyatakan sebagai

dengan demikian,

T

Page 18: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

t

f(t)

t

s(t)

t

f(t)s(t)

t

Page 19: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Konvolusi pada fungsi diskrit

• Konvolusi pada fungsi kontinu f(x) dan g(x):

• Konvolusi pada fungsi diskrit:

• Konvolusi bersifat komutatif:

daaxgafxgxfxh )()()(*)()(

a

axgafxgxfxh )()()(*)()(

Page 20: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Sifat-sifat konvolusi

• Commutative:

f*g = g*f

• Associative:

(f*g)*h = f*(g*h)

• Homogeneous:

f*(g)= f*g

• Additive (Distributive):

f*(g+h)= f*g+f*h

• Shift-Invariant

f*g(x-x0,y-yo)= (f*g) (x-x0,y-yo)

Page 21: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Konvolusi pada fungsi dwimatra

• Citra adalah sinyal dwimatra (fungsi dwimatra).

• Untuk fungsi dwimatra (fungsi dengan dua peubah), operasi konvolusididefinisikan sebagai berikut:

a) untuk fungsi kontinu

b) untuk fungsi diskrit

dadbbyaxgbafyxgyxfyxh ),(),(),(*),(),(

a b

byaxgbafyxgyxfyxh ),(),(),(*),(),(

• g(x,y) dinamakan convolution filter, convolution mask, kernel, atau template

Page 22: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Dalam ranah diskrit kernel konvolusi dinyatakan dalam bentukmatriks (umumnya 3 3, ada juga 2 2 atau 2 1 atau 1 2).

Page 23: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Ilustrasi konvolusi:

• Jadi, konvolusi dapat dipandang sebagai kombinasi linier dari vektor pixel denganvektor kernel.

• Jika jumlah nilai di dalam kernel > 1, maka f(i,j) dibagi dengan jumlah tersebut. Jika jumlahnya nol, maka f(i,j) dibagi dengan 1.

p1

p2

p3

p4

p9

p8

p7

p6

p5

A B C

D E F

G H I

f(i,j)

kernel

citra

f(i,j) = (A p1 + B p2 + C p3 + D p4 + E p5 + F p6 + G p7 + H p8 + I p9

Page 24: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 25: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 26: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Operasi konvolusi dilakukan dengan menggeser kernel konvolusi pixel per pixel. Hasil konvolusi disimpan di dalam matriks yang baru.

• Catatan: Lakukan operasi clipping Jika hasil konvolusi menghasilkan nilai pixelnegatif atau lebih besar dari nilai keabuan maksimumMisal dijadikan 0 jikahasil konvolusi negatif, dijadikan 255 jika hasil konvolusi lebih besar dari 255.

• Contoh 1. Misalkan citra f(x, y) berukuran 5 5 dikonvolusi dengan sebuah kernelatau mask berukuran 3 3, masing-masing adalah sbb:

Catatan: Jumlah nilai di dalam kernel =-1 + 4 – 1 – 1 – 1 = 0.Bagi hasil konvolusi dengan 1

Page 27: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Operasi konvolusi f(x, y) * g(x, y) adalah sebagai berikut:

Page 28: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 29: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 30: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 31: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 32: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika
Page 33: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581 Portland State University

Page 34: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581 Portland State University

Page 35: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Masalah timbul bila pixel yang dikonvolusi adalah pixel pinggir(border), karena beberapa koefisien konvolusi tidak dapat dapatdiposisikan pada pixel-pixel citra (efek “menggantung”),

Page 36: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

• Masalah “menggantung” seperti ini selalu terjadi pada pixel-pixel pinggir kiri, kanan, atas, dan bawah.

• Solusi untuk masalah ini adalah:

1. Pixel-pixel pinggir diabaikan, tidak di-konvolusi. Solusi ini banyak dipakai di dalam pustaka fungsi-fungsi pengolahan citra. Dengan cara seperti ini, makapixel-pixel pinggir nilainya tetap sama seperti citra asal

Gambar Pixel-pixel pinggir (yang tidak diarsir) tidak dikonvolusi (dari Contoh 1)

Page 37: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

2. Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom M+1, begitu juga sebaliknya, lalu konvolusi dapat dilakukan terhadap pixel-pixelpinggir tersebut.

3. Elemen yang ditandai dengan “?” diasumsikan bernilai 0 atau konstanta yang lain, sehingga konvolusi pixel-pixel pinggir dapat dilakukan.

• Solusi dengan ketiga pendekatan di atas mengasumsikan bagianpinggir citra lebarnya sangat kecil (hanya satu pixel) relatifdibandingkan denagn ukuran citra, sehingga pixel-pixel pinggir tidakmemperlihatkan efek yang kasat mata

Page 38: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

void konvolusi(citra Image, citra ImageResult, imatriks Mask, int N, int M)

/* Mengkonvolusi citra Image yang berukuran N M dengan mask 3 3. Hasil

konvolusi disimpan di dalam matriks ImageResult.

*/

{ int i, j;

for (i=1; i<=N-3; i++)

for(j=1; j<=M-3; j++)

ImageResult[i][j]=

Image[i-1][j-1]*Mask[0][0] +

Image[i-1][j+1]*Mask[0][1] +

Image[i-1][j]*Mask[0][2] +

Image[i][j-1]*Mask[1][0] +

Image[i][j]*Mask[1][1] +

Image[i][j+1]*Mask[1][2] +

Image[i+1][j-1]*Mask[2][0] +

Image[i+1][j]*Mask[2][1] +

Image[i+1][j+1]*Mask[2][2];

}

Algoritma Konvolusi citra dengan sebuah mask yang berukuran 3 3.

Page 39: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Pixel yang dikonvolusi adalah elemen (i, j). Delapan buah pixel yang

bertetangga dengan pixel (i, j) adalah sbb:

Page 40: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Konvolusi berguna pada proses pengolahan citra seperti:

• perbaikan kualitas citra (image enhancement)

• penghilangan derau

• mengurangi erotan

• penghalusan/pelembutan citra

• deteksi tepi, penajaman tepi

• dll

Page 41: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Contoh: Untuk mempertajam citra, sebuah penapis Gaussian digunakan. Penapis Gaussian adalah sebuah mask berukuran 3 3:

Page 42: Penapisan Citra dan Konvolusi - Institut Teknologi BandungPenapisan Citra dan Konvolusi IF4073 Interpretasi dan Pengolahan Citra Oleh: Rinaldi Munir Program Studi Teknik Informatika

Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581 Portland State University