Konvolusi Pada Pengolahan Citra Digital

 


Halo, selamat datang di blog saya. Pada kesempatan ini saya akan membahas mengenai konsep konvolusi citra, tujuan, penjelesain input output , algoritma dan flowchart , analisis perbedaan dari 3 metode serta referensi yang saya dapatkan.

Sebelum itu  saya akan menjelaskan terlebih dahulu apa itu pengolahan citra. Pengolahan citra merupakan sebuah bentuk pemrosesan sebuah citra atau gambar dengan proses numerik dari gambar tersebut, dalam hal ini yang diproses adalah masing-masing pixel atau titik dari gambar tersebut. Salah satu teknik pemrosesan citra memanfaatkan komputer sebagai peranti lunak memproses masing-masing pixel dari sebuah gambar.

1.     Konsep Konvolusi Citra

Konvolusi artinya operator matematika yg penting buat banyak operator pada image processing. Konvolusi menyediakan cara buat menggabungkan 2 array, umumnya buat ukuran array yg tidak sama, tetapi untuk dimensi array yang sama, menghasilkan array ketiga yang memiliki dimensi yg sama. Konvolusi dapat digunakan pada image processing buat menerapkan operator yang memiliki nilai output dari piksel yang berasal dari kombinasi linear nilai input piksel tertentu.

Sehingga dapat disimpulkan 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.

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

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:

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

Untuk fungsi diskrit:

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.

Sumber referensi:



1.     Metode Filtering Dengan Metode Konvolusi Citra

A.    Adaptive Local Filtering

1)     Konsep Metode

Filter adaptif dilakukan pada citra terdegradasi yang mengandung gambaran asli dan noise. Mean serta varians ialah dua berukuran statistik yang bergantung pada filter adaptif lokal dengan region Window mxn yg dipengaruhi.

Rumus Adaptif Filtering

Langkah pengerjaannya sebagai berikut:
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) 


2)     Tujuan Metode

Tujuan dari Adaptive Local Filtering ini merupakan cara memperbaiki gambar dengan memudarkan noice yang ada pada gambar.


3)     Penjelasan Input-Proses-Output Metode

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.     



4)     Algoritma dan Flowchart

Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta buat memilih salah  satu gambar buat diolah. Selesainya itu gambar tadi akan diolah sesuai menggunakan source code filter ini. Hasilnya akan ditampilkan dua gambar, gambaran sebelum di olah serta gambaran selesainya diolah dengan filter ini.

Adapun flowchart dari metode ini adalah sebagai berikut:

5)     Analisis Perbedaan 3 Metode

Adaptive Local Filtering

Gaussian Filtering

Oil Painting Filtering

Memperbaiki citra dengan memburamkan noise.

Memperbaiki citra dengan memburamkan gambar.

Mengubah citra menjadi seperti lukisan cat minyak.

Citra sebelumnya harus noise.

Citra sebelumnya harus noise.

Citra sebelumnya tidak harus noise.

 

6)     Sumber Referensi


B.    Gaussian Filtering / Gaussian Blur 

1)     Konsep Metode

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.

Rumus Gaussian Kernel 2 dimensi

2)     Tujuan Metode

Gaussian Filter merupakan metode yang menggunakan tranformasi linear. Maksudnya Gaussian Filter menggunakan kombinasi linier dari nilai pixel yang berada dalam lingkup lokal. Tujuan dari gaussian filtering adalah untuk menghilangkan noise dengan memudarkan gambar, namun dengan konsekuensi detail gambar juga ikut berkurang.

 

3)     Penjelasan Input-Proses-Output Metode

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

Berikut isi input source code pada Matlab untuk Gaussian Filtering. 

%Read an Image

Gambar = imread('peppers.png');

Img = rgb2gray(Gambar);

A = imnoise(Img,'Gaussian',0.04,0.003);

%Image with noise

figure,imshow(A);

I = double(A);

%Design the Gaussian Kernel

%Standard Deviation

sigma = 1.76;

%Window size

sz = 4;

[x,y]=meshgrid(-sz:sz,-sz:sz);

M = size(x,1)-1;

N = size(y,1)-1;

Exp_comp = -(x.^2+y.^2)/(2*sigma*sigma);

Kernel= exp(Exp_comp)/(2*pi*sigma*sigma);

%Initialize

Output=zeros(size(I));

%Pad the vector with zeros

I = padarray(I,[sz sz]);

%Convolution

for i = 1:size(I,1)-M

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

Temp = I(i:i+M,j:j+M).*Kernel;

Output(i,j)=sum(Temp(:));

end

end

%Image without Noise after Gaussian blur

Output = uint8(Output);

figure,imshow(Output);

 

Berikut output dari source code diatas.


4)     Algoritma dan Flowchart 

 

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. 

 

Adapun flowchart dari metode ini adalah sebagai berikut:

 

5)     Analisis Perbedaan 3 Metode 

 

 

Adaptive Local Filtering

Gaussian Filtering

Oil Painting Filtering

Memperbaiki citra dengan memburamkan noise.

Memperbaiki citra dengan memburamkan gambar.

Mengubah citra menjadi seperti lukisan cat minyak.

Citra sebelumnya harus noise.

Citra sebelumnya harus noise.

Citra sebelumnya tidak harus noise.

 

6)     Sumber Referensi

·       https://www.imageeprocessing.com/2014/04/gaussian-filter-without-using-matlab.html 



C.    Oil Painting Filtering

1)     Konsep Metode

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.

 

2)     Tujuan Metode

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

 

3)     Penjelasan Input-Proses-Output Metode

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.  



4)     Algoritma dan Flowcart 
 

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.  

 

 

Adapun flowchart dari metode ini adalah seperti gambar di bawah ini:

 

5)     Analisis Perbedaan 3 Metode 
 

Adaptive Local Filtering

Gaussian Filtering

Oil Painting Filtering

Memperbaiki citra dengan memburamkan noise.

Memperbaiki citra dengan memburamkan gambar.

Mengubah citra menjadi seperti lukisan cat minyak.

Citra sebelumnya harus noise.

Citra sebelumnya harus noise.

Citra sebelumnya tidak harus noise.

 

6)     Sumber Referensi

·        https://www.imageeprocessing.com/2011/06/oil-painting-in-matlab.html

 

 

Komentar

Postingan populer dari blog ini

Ringkasan Materi PKn dari Bab 1-Bab 6 untuk Perguruan Tinggi

Logika Fuzzy Metode Sugeno dan Tsukamoto Pada Kecerdasan Buatan