Anda di halaman 1dari 11

BAB IV

KONVOLUSI DAN TRANSFORMASI


4.1.

Konvolusi
Konvolusi merupakan perkalian dua fungsi f dan g. Operasi konvolusi ada 2 yakni untuk

fungsi malar dan untuk fungsi diskrit. Untuk fungsi malar didefinisikan sebagai berikut ;
h( x , y ) f ( x , y ) * g ( x , y )

f ( a, b) g ( x a ), y b) dadb

(4.1)

Konvolusi dengan fungsi inilah yang banyak digunakan pada pengolahan citra digital. Namun,
fungsi ini sulit diimplementasikan pada menggunakan komputer. Hal ini disebabkan kenyataan
bahwa computer hanya bisa melakukan perhitungan pada data diskrit. Untuk itulah dibentuk
operasi konvolusi untuk fungsi diskrit sebagai berikut :
h ( x, y ) f ( x, y ) * g ( x, y )

f (a, b) g ( x a), y b)

(4.2)

a a b

Misalkan diketahui f(x,y) berukuran 5*5 dan g(x,y) berukuran 3*3. Pada beberapa buku g(x,y)
dinamakan convolution filter, convolution mask, convolution kernel, atau template.
P1
P4
P7

f(x,y)

P2
P5
P8

P3
P6
P9

(1,1)
(2,1)
(3,1)
(4,1)
(5,1)

(1,2)
(2,2)
(3,2)
(4,2)
(5,2)

(1,3)
(2,3)
(3,3)
(4,3)
(5,3)

(1,4)
(2,4)
(3,4)
(4,4)
(5,4)

(1,5)
(2,5)
(3,5)
(4,5)
(5,5)

Dan
A B
D E
G H

g(x,y)

C
F
I

(1,1) (1,2) (1,3)


(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)

H(x+1,y+1) = A*P1+B*P2+C*P3+D*P4+E*P5+F*P6+G*P7+H*P8+I*P9

(4.3)

Proses operasi konvolusi secara grafis dapat digambarkan sebagai berikut :

1.

Tempatkan kernel g(x,y) pada sudut kiri atas, kemudian hitung nilai pixel hasil konvolusi
pada posisi * dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi
dengan nilai hasil konvolusi.
*

2. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.
*

3. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan ((4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

4. Geser kernel satu pixel ke bawah, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

*
5. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

6. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

7. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

8. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

9. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel hasil konvolusi pada posisi *
dengan rumus pada persamaan (4.3) sehingga h(x,y) pada posisi * akan diisi dengan nilai
hasil konvolusi.

Contoh 1 : Citra f(x,y) berukuran 5*5 dengan kernel g(x,y) berukuran 3*3 sebagai berikut :

3
3

f ( x, y ) 4

2
6

2
2
3
1
5

4
4
7
6
7

4
2
1
2 g ( x, y ) 0

1
3
5

3
3
6
6
4

1
2
1

1
0
1

Konvolusi dilakukan dengan persamaan (4.3) sehingga menghasilkan h(x,y) dengan langkahlangkah sebagai berikut :
1.

h(2,2) = f(1,1)*g(1,1) + f(1,2)*g(1,2) + f(1,3)*g(1,3) + f(2,1)*g(2,1) + f(2,2)*g(2,2) + f(2,3)*g(2,3) +


f(3,1)*g(3,1) + f(3,2)*g(3,2) + f(3,3)*g(3,3)
= (3*1)+(2*-1)+(4*1)+(3*0)+(2*2)+(4*0)+(4*1)+(3*-1)+(7*1)
= 17

3 2
3 17

H ( x, y )



2.

4
11

h(2,4) = f(1,3)*g(1,1) + f(1,4)*g(1,2) + f(1,54)*g(1,3) + f(2,3)*g(2,1) + f(2,4)*g(2,2) + f(2,5)*g(2,3) +


f(3,3)*g(3,1) + f(3,4)*g(3,2) + f(3,5)*g(3,3)
= (4*1)+(3*-1)+(4*1)+(4*0)+(3*2)+ (2*0)+(7*1)+(6*-1)+(2*1)
= 14

3 2
3 17

H ( x, y )



4.

h(2,3) = f(1,2)*g(1,1) + f(1,3)*g(1,2) + f(1,4)*g(1,3) + f(2,2)*g(2,1) + f(2,3)*g(2,2) + f(2,4)*g(2,3) +


f(3,2)*g(3,1) + f(3,3)*g(3,2) + f(3,3)*g(3,3)
= (2*1)+(4*-1)+(3*1)+(2*0)+(4*2)+(3*0)+(3*1)+(7*-1)+(6*1)
= 11

3 2
3 17

H ( x, y )



3.

4
3
11 14

4
2

h(3,2) = f(2,1)*g(1,1) + f(2,2)*g(1,2) + f(2,3)*g(1,3) + f(3,1)*g(2,1) + f(3,2)*g(2,2) + f(3,3)*g(2,3) +


f(4,1)*g(3,1) + f(4,2)*g(3,2) + f(4,3)*g(3,3)
= (3*1)+ (2*-1) + (4*1) + (4*0) + (3*2) + (7*0) + (2*1) + (1*-1) + (6*1)
= 18

3
3

H ( x, y ) 4



5.

6.

7.

8.

9.

2
17
18

4
3
11 14

4
2

h(3,3) = f(2,2)*g(1,1) + f(2,3)*g(1,2) + f(2,4)*g(1,3) + f(3,2)*g(2,1) + f(3,3)*g(2,2) + f(3,4)*g(2,3) +


f(4,2)*g(3,1) + f(4,3)*g(3,2) + f(4,4)*g(3,3)
= (2*1)+ (4*-1) + (3*1) + (3*0) + (7*2) + (6*0) + (1*1) + (6*-1) + (6*1)
= 16

4
3 4
3 2
3 17 11 14 2

H ( x, y ) 4 18 16


h(3,4) = f(2,3)*g(1,1) + f(2,4)*g(1,2) + f(2,5)*g(1,3) + f(3,3)*g(2,1) + f(3,4)*g(2,2) + f(3,5)*g(2,3) +
f(4,3)*g(3,1) + f(4,4)*g(3,2) + f(4,5)*g(3,3)
= (4*1)+ (3*-1) + (2*1) + (7*0) + (6*2) + (2*0) + (6*1) + (6*-1) + (3*1)
= 18
4
3 4
3 2
3 17 11 14 2

H ( x, y ) 4 18 16 18 2


h(4,2) = f(3,1)*g(1,1) + f(3,2)*g(1,2) + f(3,3)*g(1,3) + f(4,1)*g(2,1) + f(4,2)*g(2,2) + f(4,3)*g(2,3) +
f(5,1)*g(3,1) + f(5,2)*g(3,2) + f(5,3)*g(3,3)
= (4*1)+ (3*-1) + (7*1) + (2*0) + (1*2) + (6*0) + (6*1) + (5*-1) + (7*1)
= 18
4
3 4
3 2
3 17 11 14 2

H ( x, y ) 4 18 16 18 2


2 18


h(4,3) = f(3,2)*g(1,1) + f(3,3)*g(1,2) + f(3,4)*g(1,3) + f(4,2)*g(2,1) + f(4,3)*g(2,2) + f(4,4)*g(2,3) +
f(5,2)*g(3,1) + f(5,3)*g(3,2) + f(5,4)*g(3,3)
= (3*1)+ (7*-1) + (6*1) + (1*0) + (6*2) + (6*0) + (5*1) + (7*-1) + (4*1)
= 16
4
3 4
3 2
3 17 11 14 2

H ( x, y ) 4 18 16 18 2

2 18 16


h(4,4) = f(3,3)*g(1,1) + f(3,4)*g(1,2) + f(3,5)*g(1,3) + f(4,3)*g(2,1) + f(4,4)*g(2,2) + f(4,5)*g(2,3) +
f(5,3)*g(3,1) + f(5,4)*g(3,2) + f(5,5)*g(3,3)
= (7*1)+ (6*-1) + (2*1) + (6*0) + 6*2) + (3*0) + (7*1) + (4*-1) + (5*1)
= 23

3
3

H ( x, y ) 4

2
17
18
18

4
11
16
16

3
14
18
23

4
2
2

2
17
18
18
5

4
11
16
16
7

3
14
18
23
4

4
2
2

3
5

Sehingga diperoleh h(x,y) berikut :


3
3

H ( x, y ) 4

2
6

Pada operasi konvolusi diatas, h(x,y) yang dikonvolusi dimulai dari x = 2 dan y = 2. Berikut
adalah gambaran guna mempermudah pembuatan algoritma konvolusi.
f(x,y)

(x-1,y-1)
(x,y-1)
(x+1,y-1)

(1,1) (1,2) (1,3)


(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
(x-1,y)
(x,y)
(x+1,y)

(x-1,y+1)
(x,y+1)
(x+1,y+1)

Algoritma operasi konvolusi diatas adalah sebagai berikut :

For x 2 to N do
For y 2 to M do
z(x,y) f(x-1,y-1)*g(1,1) + f(x-1,y)*g(1,2) + f(x-1,y+1)*g(1,3) +
f(x,y-1)*g(2,1) + f(x,y)*g(2,2) + f(x,y+1)*g(2,3) +
f(x+1,y-1)*g(3,1) + f(x+1,y)*g(3,2) + f(x+1,y+1)*gk(3,3)
EndFory
EndForx

Pada proses konvolusi diatas, pixels-pixels pinggir diabaikan, tidak dikonvolusi sehingga
pixels-pixels pinggir nilainya tetap sama seperti citra awal. Anda dapat melihat bahwa konvolusi
dilakukan per pixel dan untuk setiap pixel dilakukan operasi perkalian dan penjumlahan. Hal ini,
menyebabkan konvolusi mengkonsumsi banyak waktu pada saat pengerjaannya.

Operasi konvolusi merupakan komputasi untuk suatu pixel pada citra hasil konvolusi yang
melibatkan pixel-pixel tetangga pada citra awal. Pada pengolahan citra digital, operasi konvolusi
berguna pada berbagai proses pengolahan citra antara lain perbaikan citra, penghilangan derau,
penghalusan citra, deteksi tepi, penajaman tepi dan lainnya.
Pada operasi konvolusi diatas terdapat permasalahan, yakni pada pixel pinggir tidak
dilakukan konvolusi. Penyelesaian dari masalah ini adalah :
1)

Pixels-pixels pinggir diabaikan atau tidak dikonvolusi. Dengan cara seperti ini, maka
pixels-pixels pinggir nilainya tetap sama seperti citra awal.

2)

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

3)

Elemen yang tidak ada diasumsikan bernilai 0 atau konstanta yang lain, sehingga konvolusi
pixel-pixel pinggir tetap dapat dilakukan.

Contoh 2. Citra f(x,y) berukuran 3*2 dengan kernel g(x,y) berukuran 2*2 sebagai berikut :
4
f ( x, y )
2

7
4

6
1
dan g ( x, y )

1
0

0
1

akan dilakukan konvolusi dengan aturan bahwa elemen yang tidak ada diasumsikan 0, sehingga
konvolusi pixel-pixel pinggir tetap dapat dilakukan. Berikut adalah langkah-langkah yang akan
dilakukan :
1)

Beri nilai 0 pada kolom M+1 dan baris N+1.


4
f ( x, y ) 2
0

7
4

6
1

0
0
0

2)

Lakukan operasi konvolusi

h(1,1) = f(1,1)*g(1,1) + f(1,2)*g(1,2) + f(2,1)*g(2,1) + f(2,2)*g(2,2)


= (4*-1) + (7*0) + (2*0) + (4*1)
= 0
h(1,2) = f(1,2)*g(1,1) + f(1,3)*g(1,2) + f(2,2)*g(2,1) + f(2,3)*g(2,2)
= (7*-1) + (6*0) + (4*0) + (1*1)
= -6

h(1,3) = f(1,3)*g(1,1) + f(1,4)*g(1,2) + f(2,3)*g(2,1) + f(2,4)*g(2,2)


= (6*-1) + (0*0) + (1*0) + (0*1)
= -6
h(2,1) = f(2,1)*g(1,1) + f(2,2)*g(1,2) + f(3,1)*g(2,1) + f(3,2)*g(2,2)
= (2*-1) + (4*0) + (0*0) + (0*1)
= -2

h(2,2) = f(2,2)*g(1,1) + f(2,3)*g(1,2) + f(3,2)*g(2,1) + f(3,3)*g(2,2)


= (4*-1) + (1*0) + (0*0) + (0*1)
= -4
h(2,3) = f(2,3)*g(1,1) + f(2,4)*g(1,2) + f(3,3)*g(2,1) + f(3,4)*g(2,2)
= (0*-1) + (0*0) + (0*0) + (0*1)
= 0

sehingga diperoleh h(x,y) sebagai berikut :


0
H ( x, y )
2

6
4

6
0

Algoritma untuk operasi konvolusi diatas adalah sebagai berikut :


1.

Beri nilai 0 untuk kolom M+1


Untuk x = 1 sampai N lakukan
f(x,M+1) = 0

2.

Beri nilai 0 untuk Baris N+1


Untuk y = 1 sampai M+1 lakukan
f(N+1,y) = 0

3.

Lakukan konvolusi.
Untuk x = 1 sampai N+1 lakukan
Untuk y = 1 sampai M+1 lakukan
H(x,y)= f(x,y)*g(1,1) + f(1,y+1)*g(1,2) + f(x+1,y)*g(2,1) +
f(x+1,y+1)*g(2,2)

Langkah-langkah diatas dapat dibentuk dalam algoritma sebagai berikut :


For x 1 to N do
f(x,M+1) = 0
EndForX
For y 1 to M+1 do
f(N+1,y) = 0
EndForY
For x 1 to N+1 do
For y 1 to M+1 do
h(x,y) f(x,y)*g(1,1) + f(1,y+1)*g(1,2) + f(x+1,y)*g(2,1) +
f(x+1,y+1)*g(2,2)
EndForY
EndForX

Contoh 3. Citra f(x,y) berukuran 3*2 dengan kernel g(x,y) berukuran 2*2 sebagai berikut :
2
f ( x, y )
3

4
5

3
1

0
dan g ( x, y )
1

1
0

Akan dilakukan konvolusi dengan duplikasi elemen, elemen kolom pertama disalin ke kolom
M+1 dan elemen baris pertama disalin ke baris N+1, lalu lakukan operasi konvolusi.
1)

Pindahkan kolom pertama ke kolom pertama ke kolom m+1, dan pindahkan baris pertama
ke baris N+1.
2
f ( x, y ) 3
2

5
4

1
3

2
3
2

2)

Lakukan operasi konvolusi

h(1,1) = f(1,1)*g(1,1) + f(1,2)*g(1,2) + f(2,1)*g(2,1) + f(2,2)*g(2,2)


= (2*0) + (4*1) + (3*1) + (5*0)
= 7

h(1,2) = f(1,2)*g(1,1) + f(1,3)*g(1,2) + f(2,2)*g(2,1) + f(2,3)*g(2,2)


= (4*0) + (3*1) + (5*1) + (1*0)
= 8

h(1,3) = f(1,3)*g(1,1) + f(1,4)*g(1,2) + f(2,3)*g(2,1) + f(2,4)*g(2,2)


= (3*0) + (2*1) + (1*1) + (3*0)
=3

h(2,1) = f(2,1)*g(1,1) + f(2,2)*g(1,2) + f(3,1)*g(2,1) + f(3,2)*g(2,2)


= (3*0) + (5*1) + (2*1) + (4*0)
= 7

h(2,2) = f(2,2)*g(1,1) + f(2,3)*g(1,2) + f(3,2)*g(2,1) + f(3,3)*g(2,2)


= (5*0) + (1*1) + (4*1) + (3*0)
=5
h(2,3) = f(2,3)*g(1,1) + f(2,4)*g(1,2) + f(3,3)*g(2,1) + f(3,4)*g(2,2)
= (1*0) + (3*1) + (3*1) + (2*0)
=6

sehingga diperoleh h(x,y) sebagai berikut :


7
H ( x, y )
7

8
5

3
6

Algoritma untuk operasi konvolusi diatas adalah sebagai berikut :


1.

Pindahkan kolom pertama ke kolom M+1


Untuk x = 1 sampai N lakukan

f(x,M+1) = f(x,1)
4.

Pindahkan baris pertama ke baris N+1


Untuk y = 1 sampai M+1 lakukan
f(N+1,y) = f(1,y)

5.

Lakukan konvolusi.
Untuk x = 1 sampai N+1 lakukan
Untuk y = 1 sampai M+1 lakukan
H(x,y)= f(x,y)*g(1,1) + f(1,y+1)*g(1,2) + f(x+1,y)*g(2,1) +
f(x+1,y+1)*g(2,2)

Langkah-langkah diatas dapat dibentuk dalam algoritma sebagai berikut :


For x 1 to N do
f(x,M+1) = f(x,1)
EndForX
For y 1 to M+1 do
f(N+1,y) = f(1,y)
EndForY
For x 1 to N+1 do
For y 1 to M+1 do
h(x,y) f(x,y)*g(1,1) + f(1,y+1)*g(1,2) + f(x+1,y)*g(2,1) +
f(x+1,y+1)*g(2,2)
EndForY
EndForX

4.2. Transformasi
Satu cara mengurangi waktu komputasi adalah mentransformasi citra dan kernel ke dalam
ranah frekuensi dengan menggunakan transformasi fourier, selanjutnya baru

dilakukan

konvolusi. Keuntungan utama dari penggunaan data frekuensi adalah proses konvolusi dapat
diterapkan dalam bentuk perkalian langsung.
Proses perubahan fungsi dari data spasial ke data frekuensi dilakukan melalui transformasi
fourier. Sedangkan perubahan dari data frekuensi ke data spasial dilakukan melalui transformasi
fourier balikan (invers).
f(x,y)

Transformasi Fourier

F(u,v)

F(u,v)

Transformasi Fourier

f(x,y)

Dengan demikian, operasi konvolusi dua buah fungsi dalam data frekuensi menjadi :
h(x,y) = f(x,y)*g(x,y) H(u,v) = F(u,v) G(u,v)
H(u,v)

h(x,y)

Transformasi Fourier Balikan

4.2.1. Transformasi Fourier Diskrit


Transformasi fourier adalah suatu model transformasi yang memindahkan domain spasial
atau domain waktu menjadi domain frekuensi.

Dengan menggunakan transformasi ini, sinyal

atau citra dapat dilihat sebagai suatu objek dalam domain frekuensi.

F (u , v )

f ( x, y )

M 1 N 1
1
MN

f ( x, y) exp[ j 2 (ux / M vy / N )]

(4.4)

x 0 y 0

M 1 N 1

F (u, v) exp[ j 2 (ux / M vy / N )]

(4.5)

u 0 v 0

Pers (4.4) adalah persamaan untuk mentransformasikan data citra yang berdomain spatial
menjadi data citra yang berdomain frekuensi. Pers (4.5) adalah persamaan invers transform yaitu
yang mengembalikan data citra berdomain frekuensi menjadi kembali berdomain spasial. f(x,y)
adalah citra berdomain spatial, F(u,v) adalah citra berdomain frekuensi.

4.2.2. Transformasi Cosin Diskrit

( 2 x 1) u
2M

cos

( 2 y 1) v
2N

(4.6)

(u ) (v)C (u, v) cos

( 2 x 1) u
2M

cos

( 2 y 1) v
2N

(4.7)

M 1 N 1

C (u , v ) (u ) (v ) f ( x, y ) cos
x 0 v 0

f ( x, y )

M 1 N 1
x 0 y 0

Anda mungkin juga menyukai