KORELASI dan KONVOLUSI
Korelasi adalah operasi yang digunakan dalam berbagai aplikasi dalam bidang pengolahan isyarat secara digital. Korelasi merupakan ukuran derajat kesamaan antara dua isyarat atau sekuens. Jika diketahui x[n] dan y[n] dengan energi yang terbatas maka kros-korelasi antara x[n] dan y[n]
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
Contoh implementasi konvolusi diatas adalah sebagai berikut.
Nah , dari hasil running program konvolusi matlab di atas bisa terlihat perbedaan nya
Untuk membuktikany kita bisa mencoba dengan program matlab selanjutnya untuk menghitung correlation dan convolution dibawah ini
</code> %==================inisialisasi matriks ======================== 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 <code>
Karena gambar catur berwarna hitam putih , maka hasil binerisasi citra nya kurang lebih akan berbentuk angka 0 dan 255 dalam arti
0 = nilai warna hitam
255 = nilai warna putih
Untuk penghitungannya kita ambil contoh 9 angka pada array pixel berikut ini
0 0 0 -1 -1 -1
0 0 0 * -1 8 -1
255 255 255 -1 -1 -1
Dengan rumus
e = (8*0)+(-1*0)+(-1*0)+(-1*0)+(-1*0)+(-1*0)+(-1*255)+(-1*255)+(-1*255)
e = (0) + (0) + (0) + (0) + (0) + (0) + (-255) + (-255) + (-255)
e = – 765
untuk hasil penghitungan konvolusi dengan matlab bisa dilihat dibawah ini :