Konvlusi pada pengolahan citra

 Citra atau gambar dalam bahasa latin imago adalah suatu representasi, kemiripan, atau imitasi dari suatu obyek atau benda. Citra dapat dikelompokkan menjadi citra tampak dan citra tidak tampak. Contoh citra tampak dalam kehidupan sehari-hari: foto, gambar, dan lukisan, sedangkan citra tidak tampak misalnya: data gambar dalam file (citra digital), dan citra yang direpresentasikan menjadi fungsi matematis.

Di antara jenis citra tersebut, hanya citra digital yang dapat diolah menggunakan komputer. Jenis citra lain, jika hendak diolah dengan komputer, harus diubah dulu menjadi citra digital, misalnya foto discan dengan scanner, persebaran panas tubuh foto ditangkap dengan kamera infra merah dan diubah menjadi informasi numeris, informasi densitas dan komposisi bagian dalam tubuh manusia ditangkap dengan bantuan pesawat sinar–x dan sistem deteksi radiasi menjadi informasi digital. Kegiatan untuk mengubah informasi citra fisik non digital menjadi digital disebut sebagai pencitraan (imaging).

Konvolusi citra adalah tehnik untuk menghaluskan suatu citra atau memperjelas citra dengan menggantikan nilai piksel dengan sejumlah nilai piksel yang sesuai atau berdekatan dengan piksel aslinya. Tetapi dengan adanya konvolusi, ukuran dari citra tetap sama, tidak berubah.

Konvolusi memiliki dua buah fungsi f(x) dan g(x) yang didefinisikan sebagai berikut:

h(x)=f(x)*g(x)=

yang dalam hal ini, tanda (*) menyatakan operator konvolusi dan peubah (variable)  adalah peubah bantu.

Untuk pengolahan citra, operasi yang dilakukan adalah diskrit karena nilai koordinat piksel merupakan nilai yang diskrit. Selanjutnya filter atau mask yang digunakan pada pengolahan citra biasanya berukuran terbatas, dalam artian bobot atau pengaruh dari titik-titik yang cukup jauh sudah tidak signifikan, sehingga dapat diabaikan (dianggap nol).

Bentuk diskrit dari operasi konvolusi satu dimensi pada pengolahan citra adalah: 

h(x)=f(x)*g(x)=

Untuk fungsi dengan dua dimensi, operasi konvolusi didefinisikan sebagai berikut:

Untuk fungsi integral:

h(x,y) = f(x,y)*g(x,y) = 

Untuk fungsi diskrit:

h(x,y) = f(x,y)*g(x,y) = 

Fungsi penapis g(x,y) disebut juga konvolusi filter, konvolusi mask, konvolusi kernel, atau template. Dalam bentuk diskrit konvolusi kernel dinyatakan dalam bentuk matriks (umumnya matriks 3x3). Ukuran matriks ini biasanya lebih kecil dari ukuran citra. Setiap elemen matriks disebut koefisien konvolusi. 


3 Metode Filtering yang menggunakan Proses Konvolusi pada Citra 

1. Metode Gaussian Blur atau Gaussian Filter

    a. Konsep Gaussian Filter

        Pengertian Filter Gaussian Menurut Usman (2005:70), filter Gaussian sangat baik untuk            menghilangkan noise yang bersifat sebaran nomal, yang banyak di jumpai pada sebaran citra hasil proses digitasi menggunakan kamera karena merupakan fenomena alamiah akibat sifat pantulan cahaya dan kepekaan sensor cahaya pada kamera itu sendiri. Gaussian Blur adalah Filter blur yang menempatkan warna transisi yang signifikan dalam sebuah image, kemudian membuat warna-warna pertengahan untuk menciptakan efek lembut pada sisi-sisi sebuah image. Gaussian blur adalah salah satu filter blur yang menggunakan rumus matematika untuk menciptakan efek autofocus untuk mengurangi detail dan menciptakan efek berkabut.


b.     Tujuan Metode Gaussian Filter

        Gaussian Filter merupakan metode yang menggunakan tranformasi linear. Maksudnya Gaussian Filter menggunakan kombinasi linier dari nilai pixel yang berada dalam lingkup lokal.Dalam metode ini setiap pixel memiliki berat sendiri-sendiri. Nilai berat dari tiap pixel ditentukan dengan menggunakan Gaussian Distribution.Gaussian Distribution adalah cara agar kita dapat menentukan nilai mana yang paling berpengaruh (memiliki berat paling besar) dalam kumpulan data. Kumpulan data yang dimaksud dalam makalah ini adalah nilai dari pixel. 


c.     Penjelasan Input-Proses-Output metode Gaussian Filter

        Pada subbab ini akan dibahas mengenai proses filtering dengan metode Gaussian.

Berikut potongan kode program filter Gaussian:

for x := M to w-1-M do

for y := N to h-1-N do

begin

jumlah := 0;

for u := -M to M do

for v := -N to N do

jumlah := jumlah+Mask[u,v]*Ki[x-u,y-v];

Ko[x,y] := Round(jumlah);

end;

Dengan menentukan maks yang digunakan yaitu konstanta M dan N, operasi filter Gaussian dilakukan dengan perhitungan sum of producst.


d.     Algoritma dan Flowchart Dari masing-masing metode Gaussian Filter

        Pada proses ini dilakukan konvolusi antara matriks input dengan koefisien filter Gaussian. Proses konvolusi yang dilakukan adalah konvolusi 1 dimensi. Proses konvolusi ini akan dilakukan pada setiap kolom dari matriks citra 2D. Proses konvolusi merupakan salah satu proses yang penting karena proses ini juga merupakan proses yang mendasari perhitungan koefisien filter yang menjadi kunci utama dalam perbaikan citra ber-noise. Data yang dihasilkan dari proses konvolusi ini adalah matriks 1 dimensi (1 kolom, n baris). Urutan prosesnya dapat didefinisikan sebagai berikut :

1.Deklarasikan matrik masukan 1 dimensi dari proses sebelumnya.

2.Tentukan konstanta M dan N untuk menentukan batas konvolusi

3.Tentukan deviasi standar dengan menggunakan persamaan

4.Simpan matrik input pada memori sementara

5.Lakukan proses konvolusi matrik masukan

6.Simpan matrik hasil pada memori bitmap citra hasil

7.Dihasilkan matrik hasil filter Gaussian.


2. Metode Filtering Dengan Konvolusi Citra

a. Konsep Adaptive Local Filtering

Filter adaptif dilakukan pada citra terdegradasi yang mengandung citra asli dan noise. Mean dan varians adalah dua ukuran statistik yang bergantung pada filter adaptif lokal dengan region Window mxn yang ditentukan.

Rumus Adaptif Filtering

 


Langkah pengerjaan
1 Tentukan nilai dari ukuran Window mxn
2 Hitung nilai matrix B dengan Gaussian Noise

3 Berikan nilai 0 pada seluruh sisi matrix B 


4 Hitung nilai local dan selisih lokal dengan menggeser Window 3×3 


nilai lokal = nilai(Window) = 0.4373

selisih lokal = nilai(Window²) – nilai(Window²) = 0.2394

5 Berikan nilai lokal ke matrix B
 
6 Berikan selisih lokal ke matrix B
7 Selisih dari semua noise adalah rata-rata dari selisih lokal, oleh karena itu selisih noise = 0.1709

8 jika (selisih noise > nilai lokal (x,y)) maka nilai lokal (x,y) = selisih noise.
Berikut representasi posisi pixel (x,y) dalam 2 dimensi
9 Final Image = B – (selisih noise/selisih nilai lokal)(B-nilai lokal) 



b. Tujuan
Tujuan dari Adaptive Local Filtering adalah untuk memperbaiki gambar dengan menjadikan noise yang ada pada gambar memudar.

c. Penjelasan Input-Proses-Output
Berikut isi input source code pada Matlab untuk adaptive local filtering.

A = imread(‘peppers.png’);
B = rgb2gray(A);
sz = size(B,1)*size(B,2);
%Add gaussian noise with mean 0 and variance 0.005
B = imnoise(B,’gaussian’,0,0.005);
figure,imshow(B); title(‘Image with gaussian noise’);
B = double(B);
%Define the window size mxn
M = 5;
N = 5;
%Pad the matrix with zeros on all sides
C = padarray(B,[floor(M/2),floor(N/2)]);
lvar = zeros([size(B,1) size(B,2)]);
lmean = zeros([size(B,1) size(B,2)]);
temp = zeros([size(B,1) size(B,2)]);
NewImg = zeros([size(B,1) size(B,2)]);
for i = 1:size(C,1)-(M-1)

for j = 1:size(C,2)-(N-1)  

    temp = C(i:i+(M-1),j:j+(N-1));

    tmp =  temp(:);

         %Find the local mean and local variance for the local region       

    lmean(i,j) = mean(tmp);

    lvar(i,j) = mean(tmp.^2)-mean(tmp).^2;      

end

end
%Noise variance and average of the local variance
nvar = sum(lvar(:))/sz;
%If noise_variance > local_variance then local_variance=noise_variance
lvar = max(lvar,nvar);
%Final_Image = B- (noise variance/local variance)*(B-local_mean);
NewImg = nvar./lvar;
NewImg = NewImg.*(B-lmean);
NewImg = B-NewImg;
%Convert the image to uint8 format.\
NewImg = uint8(NewImg);
figure,imshow(NewImg);title(‘Restored Image using Adaptive Local filter’);

Berikut output dari source code diatas.
      
 



d. Algoritma dan Flowchart 

Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah dengan filter ini. 



3.)  Metode Oil Painting Filtering

a. Konsep
Untuk mendapatkan efek seperti lukisan, tentukan matriks jendela kecil berukuran m kali n. Salin nilai piksel gambar asli ke dalam matriks dan temukan histogram dari setiap nilai. Temukan nilai piksel maksimum yang terjadi dan ganti posisi saat ini dengan nilai kejadian maksimum.

b. Tujuan
Tujuan dari Oil Painting Filtering adalah untuk menghasilkan gambar yang menyerupai hasil dari lukisan minyak.

c. Penjelasan Input-Proses-Output
Berikut isi input source code pada Matlab untuk Oil Painting Filtering.

A=imread(‘fabric.png’);
figure,imshow(A)
%Define the matrix size of your convience.
m=5;
n=6;
Image=uint8(zeros([size(A,1)-m,size(A,2)-n,3]));
%Calculate the histogram for each RGB value.
for v=1:3
for i=1:size(A,1)-m

for j=1:size(A,2)-n

    mymask=A(i:i+m-1,j:j+n-1,v);

    h=zeros(1,256);

    for x=1:(m*n)

        h(mymask(x)+1)=h(mymask(x)+1)+1;

    end

%Maximum occurring value and the position is obtained

[maxvalue,pos]=max(h);

    Image(i,j,v)=pos-1;

end

end
end
figure,imshow(Image);

Berikut output dari source code diatas. 















d. Algoritma dan Flowchart

Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah dengan filter ini. 




C. Perbedaan Dari 3 Metode Tersebut 

Comments

Popular posts from this blog

LATIHAN SOAL, HIPOTESIS

LATIHAN SOAL, VARIABEL ACAK DAN EKSPETASI

LATIHAN SOAL, DISTRIBUSI PROBABILITAS DISKRIT