0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan42 halaman

Penapisan Citra dan Teori Konvolusi

Dokumen tersebut membahas tentang penapisan citra dan konvolusi. Penapisan citra berarti memodifikasi nilai pixel berdasarkan nilai pixel tetangganya. Konvolusi merupakan salah satu jenis penapisan citra yang melibatkan kernel atau mask. Konvolusi dilakukan dengan menggeser kernel pada citra dan menghitung nilai baru pixel berdasarkan perkalian antara nilai pixel citra dengan nilai kernel. Konvolusi berguna untuk berbagai proses pengolahan citra sepert

Diunggah oleh

Arfando Grasanando
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan42 halaman

Penapisan Citra dan Teori Konvolusi

Dokumen tersebut membahas tentang penapisan citra dan konvolusi. Penapisan citra berarti memodifikasi nilai pixel berdasarkan nilai pixel tetangganya. Konvolusi merupakan salah satu jenis penapisan citra yang melibatkan kernel atau mask. Konvolusi dilakukan dengan menggeser kernel pada citra dan menghitung nilai baru pixel berdasarkan perkalian antara nilai pixel citra dengan nilai kernel. Konvolusi berguna untuk berbagai proses pengolahan citra sepert

Diunggah oleh

Arfando Grasanando
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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
• 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
• Penapisan citra berarti memodifikasi pixel-pixel di dalam citra berdasarkan
transformasi terhadap nilai-nilai pixel tetangganya.

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

(x-1,y-1)

(x,y) (x,y)

(x+1,y+1)

10 5 3 transformasi
4 5 1 7
1 1 7

Local image data Modified image data


• Penapisan citra termasuk ke dalam tipe operasi aras lokal

• Sebuah operator khusus untuk penapisan citra adalah konvolusi


(convolution) atau linear filering.
Teori Konvolusi
• Konvolusi 2 buah fungsi f(x) dan g(x) didefinisikan sebagai berikut:

h( x )  f ( x ) * g ( x )   f (a ) g ( x  a )da


• Tanda * menyatakan operator konvolusi, dan peubah a adalah peubah


bantu (dummy variable).

• g(x) disebut kernel atau mask konvolusi.


• Kernel g(x) dapat dibayangkan sebagai sebuah jendela yang dioperasikan
secara bergeser pada sinyal masukan f(x)
• Jumlah perkalian kedua fungsi pada setiap titik merupakan hasil konvolusi
yang dinyatakan dengan sinyal luaran h(x).
Contoh: Misalkan fungsi f(x) dan g(x) diperlihatkan pada gambar
berikut.

Rumus konvolusi: h( x )  f ( x ) * g ( x )   f (a ) g ( x  a )da




Step 1: Tentukan g(-a) Step 2: Tentukan g(x – a )


.
.
Hasil akhir:
Sumber gambar: Concolution, CS485/685 Computer Vision, Prof. George Bebis
Konvolusi dengan fungsi impuls
• Fungsi impuls disebut juga fungsi delta dirac.
• Fungsi delta dirac bernilai 0 untuk x  0, dan “lebar” denyutnya sama
dengan 1.
• Secara matematis fungsi delta dirac definisikan sebagai
 (x )
 ( x )  0, x  0

lim  ( x)dx  1
 0 

x
• Sifat-sifat fungsi delta dirac:

• Bila kita bekerja dengan fungsi diskrit, maka fungsi delta yang
digunakan adalah fungsi delta Kronecker, yang didefinisikan sebagai
0, n  0
 (n )  
1, n  0

dengan sifat  f (m) (n  m)  f (n)


m  
• Hasil konvolusi f(x) dengan delta dirac (x)

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

f(a) g(a)

A A

a a
b -T T -T b T
(a) (b) (c)
• Kegunaan fungsi impuls: penerokan (sampling) sinyal kontinu menjadi
sinyal diskrit.
• Proses penerokan dinyatakan sebagai perkalian sinyal kontinu f(t) dengan fungsi
penerok berupa rentetan sinyal delta sejarak T satu sama lain.

T
• Fungsi penerok itu dapat dinyatakan sebagai

dengan demikian,
f(t)

s(t)

f(t)s(t)

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

h( x )  f ( x ) * g ( x )   f (a ) g ( x  a )da


• Konvolusi pada fungsi diskrit:



h( x )  f ( x ) * g ( x )   f (a ) g ( x  a )
a  

• Konvolusi bersifat komutatif:


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)
Konvolusi pada fungsi dwimatra
• Citra adalah sinyal dwimatra (fungsi dwimatra).
• Untuk fungsi dwimatra (fungsi dengan dua peubah), operasi konvolusi
didefinisikan sebagai berikut:
a) untuk fungsi kontinu
 
h( x, y )  f ( x, y ) * g ( x, y )    f (a, b) g ( x  a, y  b)dadb
 

b) untuk fungsi diskrit


 
h( x, y )  f ( x, y ) * g ( x, y )    f ( a , b) g ( x  a , y  b)
a   b  

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


• Dalam ranah diskrit kernel konvolusi dinyatakan dalam bentuk
matriks (umumnya 3  3, ada juga 2  2 atau 2  1 atau 1  2).
• Ilustrasi konvolusi:

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

G H I
kernel

citra

• Jadi, konvolusi dapat dipandang sebagai kombinasi linier dari vektor pixel dengan
vektor kernel.
f(i,j) = (A p1 + B p2 + C p3 + D p4 + E p5 + F p6 + G p7 + H p8 + I p9

• 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.
• 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 pixel
negatif atau lebih besar dari nilai keabuan maksimum  Misal dijadikan 0 jika
hasil konvolusi negatif, dijadikan 255 jika hasil konvolusi lebih besar dari 255.

• Contoh 1. Misalkan citra f(x, y) berukuran 5  5 dikonvolusi dengan sebuah kernel


atau 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
• Operasi konvolusi f(x, y) * g(x, y) adalah sebagai berikut:
Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581
Portland State University
Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581
Portland State University
• Masalah timbul bila pixel yang dikonvolusi adalah pixel pinggir
(border), karena beberapa koefisien konvolusi tidak dapat dapat
diposisikan pada pixel-pixel citra (efek “menggantung”),
• 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, maka
pixel-pixel pinggir nilainya tetap sama seperti citra asal

Gambar Pixel-pixel pinggir (yang tidak diarsir) tidak dikonvolusi (dari Contoh 1)
2. Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom M+1,
begitu juga sebaliknya, lalu konvolusi dapat dilakukan terhadap pixel-pixel
pinggir 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 bagian


pinggir citra lebarnya sangat kecil (hanya satu pixel) relatif
dibandingkan denagn ukuran citra, sehingga pixel-pixel pinggir tidak
memperlihatkan efek yang kasat mata
Algoritma Konvolusi citra dengan sebuah mask yang berukuran 3  3.

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];
}
Pixel yang dikonvolusi adalah elemen (i, j). Delapan buah pixel yang
bertetangga dengan pixel (i, j) adalah sbb:
Konvolusi berguna pada proses pengolahan citra seperti:
• perbaikan kualitas citra (image enhancement)
• penghilangan derau
• mengurangi erotan
• penghalusan/pelembutan citra
• deteksi tepi, penajaman tepi
• dll
Contoh: Untuk mempertajam citra, sebuah penapis Gaussian
digunakan. Penapis Gaussian adalah sebuah mask berukuran 3 3:
Sumber: Image Convolution, Jamie Ludwig, Satellite Digital Image Analysis, 581
Portland State University

Anda mungkin juga menyukai