Rabu, 19 Oktober 2016

Konvolusi Pada Pengolahan Citra

Konvolusi
Kali ini saya akan membahas tentang konvolusi pada pengolahan citra dan contoh penggunaannya pada MATLAB. 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. Setelah mengetahui definisi dari konvolusi, Beberapa hal umum yang berhubungan dengan konvulasi :
  • Konvolusi diskrit banyak digunakan dalam pengolahan citra untuk image smoothing, edge detection dan efek-efeklainnya
  • Konvolusi dilakukan berdasarkan jumlah bobot dari piksel-piksel tetangga
  • Bobot ditentukan berdasarkan ukuran window berupa matriks
  • Window atau disebut juga sliding window bergerak sepanjang piksel yang ada pada citra berukuran kecil yang biasa disebut convolution mask atau convolution kernel
  • Orde matriks biasanya ganjilsehingga hasil konvolusi tepat berada ditengah-tengah
  • Semakin besar ukuran window,beban komputasi akan semakin meningkat

Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkaran dari sebuah sudut fungsi F yang digeser atas fungsi g sehingga menghasilkan fungsi h. Konvolusi dilambangkan dengan arsterik (*). Sehingga, F*g=h berarti fungsi F dikonvolusikan dengan fungsi g menghasilkan fungsi h. konvolusi dua buah fungsi F(x) dan g(x) di definiskan sebagai berikut :


integral dari -tak hingga sampai tak terhingga. Untuk fungsi diskrit, konvolusi di definisikan sebagai :


g(x) disebut dengan kernel konvolusi (filter). Kernel g(x) merupakan jendela yang dioperasikan secara bergeser pada sinyal masukan F(x). Hasil konvolusi dinyatakan dengan keluaran h(x). Ilustrasi Konvolusi : F(i,j)



F(i,j) = AP1+BP2+CP3+DP4+EP5+FP6+GP7+HP8+IP9

Contoh, misal citra F(x,y) yang berukuran 5x5 sebuah kernel dengan 3x3 matriks sebagai berikut :


Tahapan menghitung hasil konvolusi :

  1. Menempatkan kernel pada sudut kiri atas, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (3)
  2. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (0)
  3. Selanjutnya dengan cara yang sama geser ke kanan dan seterusnya
  4. Geser kernel satu pixel ke bawah, lakukan perhitungan seperti di atas
  5. Nilai pixel citra tepi tidak berubah
  6. Sehingga di dapatkan hasil sebagai berikut



Contoh Penggunaan Konvolusi Pada MATLAB
kita akan mencoba mempraktekkannya pada MATLAB. Berikut adalah langkah-langkah yang diperlukan :

  1. Buka Editor (pada tab menu pilih Dekstop >> Editor)
  2. Lalu pilih file>>new script
  3. Kemudian masukkan perintah dibawah ini :

gambar=imread(‘asli.jpg’);
[matrixcitra]=imread(‘asli.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)
Setelah memasukkan script diatas, kemudian save file anda (directory bebas). Setelah melakukan proses save diatas, kemudian copykan file gambar yang hendak d konvolusikan pada directory script(file yang sudah disave diatas) yang sama. Lalu tekan F5

Citra awal


Citra hasil konvolusi

Proses olah citranya sebagai berikut:
Sample yang digunakan adalah matriks 5x5


Citra hasil konvolusi


Proses penghitungan sample matriks 5x5 secara manual :
Rumus yang digunakan f(x)*g(x)
Nilai mask yang dipakai:


Sumber :

  • Modul 6 Pengolahan Citra
  • http://rai46.blogspot.co.id/2012/03/konvolusi-kolerasi-pada-pengolahan.html


1 komentar: