Mengenai Saya

Selasa, 13 Maret 2012

TUGAS II - PENGOLAHAN CITRA

Konvolusi (Convolution)

Pengertian Konvolusi :
=> 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.
          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.

Contoh:

a = [1, 2, 3] dan b = [4,5,6] maka a*b :

Sehingga a*b adalah [4,13,28,27,18]
Dari contoh diatas terlihat bahwa jumlah elemen c adalah jumlah elemen a ditambah jumlah elemen b dikurangi 1 :      (3+3-1 = 5)

Konvolusi dikawasan waktu (time domain) ekuivalen dengan perkalian dikawasan frekuensi dan sebaliknya konvolusi dikawasan frekuensi ekuivalen dengan perkalian dikawasan waktu [Bracewell, 1965]

 Berikut adalah contoh implementasi konvolusi :
1. Gambar sebelum di Konvolusi :



Nah,ini adalah implementasi matlab sebelum di Konvolusi :


    Nilai Biner sebelum di konvolusi :

2. Gambar setelah di Konvolusi :



Nah, berikut ini adalah source code dalam matlab setelah di Konvousi :

 Nilai biner setelah di Konvolusi adalah :
 


Cara penghitungan menggunakan matlab untuk membuktikan hasil konvolusi caranya:

Source Code:
x=input ('masukan banyak baris');
   
    y=input ('masukan banyak kolom');
   
    for i=1:x
   
    for j=1:y
   
    im(i,j)=input('masukan nilai baris');
   
    end
   
    end
   
    %============ inisialisasi input operasi =================
   
    choice =input('type 1 for correlation and 2 for convolution');
   
    window = input('enter the window size');
   
    if choice==1
   
    for i=1:window*window
   
    w(i)=input('enter the window value rowvise');
   
    end
   
    end
   
    if choice==2
   
    for i=1:window*window
   
    w(window*window-i+1)=input('input the window value rowvise');
   
    end
   
    end
   
    %=================== rumus =======================
   
    [a b] = size(im);
   
    m = a+2*(window-1);
   
    n = b+2*(window-1);
   
    imfull =zeros(m,n);
   
    imout=zeros(m,n);
   
    imfinal=zeros(a,b);
   
    for i=1:m
   
    for j=1:n
   
    if (i>=window && i<=m-window+1 && j>=window && j<=n-window+1);
   
    imfull(i,j)=im(i-window+1, j-window+1);
   
    end
   
    end
   
    end
   
    for k=1: m-window+1
   
    for l=1:n-window+1
   
    count=1;
   
    isum =0;
   
    for i=k:k+window-1
   
    for j=1:1+window-1
   
    isum=w(count)*imfull(i,j)+isum;
   
    count=count+1;
   
    end
   
    end
   
    imout(k+1,l+1)=isum;
   
    end
   
    end
   
    %================ output ======================
   
    for i=1:a
   
    for j=1:b
   
    imfinal(i,j)=imout(i+window-1,j+window-1);
   
    end
   
end
   
    im
   
    count =1;
   
    for i=1:window
   
    for j=1:window
   
    win(i,j)=w(count);
   
    count=count+1;
   
    end
   
    end
   
    win
   
    imfinal

Hasilnya :


Sekarang kita buat cara penghitungan manualnya untuk membuktikan hasil konvolusi benar atau tidak caranya :

1. Sebagai contoh, kita ambil matriks paling atas yaitu :


0
0
0
0
0
0
0
0
0


2. Lalu kita kalikan dengan matriks yang kita masukan dalam program tadi :

-1 -1 -1
-1
8 -1
-1 -1 -1


Rumusnya :


abc
rst
dee
*
u
v
w
fgh
x
y
z

e = v*e + z*a + y*b + x*c + w*d + u*e + t*f + s*g + r*h

Hasilnya :

0
0
0

-1
-1
-1
0
0
0
*
-1
8
-1
0
0
0

-1
-1
-1

0 = 8*0 + (-1)*0 + (-1)*0 + (-1)*0 + (-1)*0 + (-1)*0 + (-1)*0 + (-1)*0 + (-1)*0 = 0

Lakukan sampai semua kolom memiliki nilai konvolusinya.. :D
Setelah dilakukan penghitungan seperti rumus diatas ternyata hasil penghitungan konvolusi sama yaitu :


0
0
0
0
0
0

0
0
0

1 komentar:

  1. nice share
    ditunggu postingan menarik lainnya mengenai pengolahan citra
    terima kasih

    BalasHapus