Selasa, 28 Februari 2012

Konvolusi Matlab

Konvolusi
Secara umum konvolusi didefinisikan sebagai cara untuk mengkombinasikan dua buah deret angka yang menghasilkan deret angka yang ketiga. Didalam dunia seismik deret-deret angka tersebut adalah wavelet sumber gelombang, reflektivitas bumi dan rekaman seismik.
Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang digeser atas fungsi b sehingga menghasilkan fungsi c. Konvolusi dilambangkan dengan asterisk ( *).
Sehingga, a*b = c berarti fungsi a dikonvolusikan dengan fungsi b menghasilkan fungsi c.

Konvolusi Image dengan Matlab

Konvolusi adalah salah satu proses filtering image yang sering dilakukan pada proses pengolahan
gambar. Pada MATLAB terdapat banyak sekali cara yang dapat dilakukan untuk melakukan proses
konvolusi. Proses konvolusi dilakukan dengan menggunakan matriks yang biasa disebut mask yaitu
matriks yang berjalan sepanjang proses dan digunakan untuk menghitung nilai representasi lokal
dari beberapa piksel pada image.
 
Gambar 
 
 
 
 







Contoh implementasi  konvolusi gambar d atas yaitu:

gambar=imread(‘smile.jpg’);
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,’valid’);
imshow(gambar)
figure, imshow(hasil)

Penjelasan : 

Fungsi penapis g(x,y) disebut convolution filter, convolution mask, Convolution kernel, atau template. Dlm domain diskret kernel konvolusi dinyatakan dlm btk matriks (umumnya 3 x 3, namun ada jg yg berukuran 2x2 atau 2x1 atau 1x2 Ukuran matriks biasanya lebih kecil dr ukuran citra. Setiap elemen matriks disebut koefisien konvolusi T 1 T 2 T 4 T 8 T 7 T 3 T 6 T 5 T 9 A B D H G C F E I Kernel Citra f(i,j) f(i,j)= AT 1 + BT 2 + CT 3 + DT 4 + ET 5 + FT 6 + GT 7 + HT 8 + IT 9 
 
Contoh: Citra f(x,y) berukuran 5x5 dan sebuah kernel ukuran 3x3 sbb: Lakukan operasi konvolusi antara citra f(x,y) dgn kernel g(x,y) f(x,y)*g(x,y)= ??????? f(x,y) = 4 3 5 4 6 6 5 5 2 5 6 6 6 2 6 7 5 5 3 3 5 2 4 4 g(x,y)= 0 -1 0 -1 4 -1 0 -1 0 Posisi (0,0) dr kernel 

Pixel-pixel pinggir diabaikan, tdk dikonvolusi (tetap). Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom M+1, begitu sebaliknya. Elemen kosong diasumsikan 0. Catatan: Ada masalah untuk pinggiran citra, hal ini dpt diatasi dgn cara: Dpt dilihat bhw operasi konvolusi merupakan komputasi pd aras lokal, krn komputasi utk suatu pixel pd citra keluaran melibatkan pixel-pixel tetangga pd citra masukannya. Konvolusi berguna pd proses pengolahan citra al: Perbaikan kualitas citra Penghilangan derau Penghalusan/pelembutan citra Deteksi tepi, penajaman tepi dll Contoh: lakukan konvolusi suatu citra foto hitam putih Anda dgn penapis Gaussian utk mempertajam tepi-tepi di dlm citra. Penapis Gaussian adalah sebuah mask berukuran 3x3 
 
Operasi konvolusi dilakukan perpixel & untuk setiap pixel dilakukan operasi perkalian dan penjumlahan, shg memerlukan komputasi yg besar. Jk citra berukuran NxN & kernel mxm, mk jumlah perkalian dlm orde N 2 m 2 Contoh: jk citra 512x512 & kernel 16x16 mk ada sekitar 32juta perkalian, tdk cocok untuk proses real time. Suatu cara mengurangi wkt komputasi adalah mentransformasi citra dan kernel ke dlm domain frekuensi dlm hal ini Transf. Fourier Keuntungan penggunaan domain frekuensi adalah proses konvolusi dpt diterapkan dlm btk perkalian langsung. g(x,y)= 1 2 1 2 4 2 1 2 1

1 komentar: