KONVOLUSI PADA CITRA
Konsep Konvolusi Citra
Konvolusi adalah sebuah operator matematika yang sangat penting untuk banyak operator dalam melakukan Image prosessing . Konvolusi ini akan menyediakan untuk cara menggabungkan 2 array dan biasanya array yang digunakan juga berbeda namun masih memilki dimensi array yang sama dan menghasilkan array ketiga yang akan mempunya dimensi yang sama juga.
Jadi konvolusi citra dapat diartikan adalah teknik yang digunakan untuk menghaluskan suatu cita atau memperjelas citra dengan menggantikan nilai piksel gambar dengan sejumlah nilai yang sesuai atau berdekatan dengan piksel aslinya dari gambar. Namun walaupun begitu dengan menggunakan konvolusi, ukuran dari citra akan tetap sama dan tidak berubah.
3 Metode yang Filtering yang Menggunakan Proses Konvolusi Citra
1. Adactive Local Filtering
Rumus Adaptif Filtering
b. Tujuan Metode
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.
2. Gaussian Filtering / Gaussian Blur
a. Konsep Metode
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 sehingga sudut-sudut tajam pada citra akan menjadi lebih halus. Pengolahan citra ini dapat berdampak suatu citra menjadi semakin baik, tapi bisa juga menjadi semakin buruk.
b. Tujuan Metode
Tujuan dari gaussian filtering adalah untuk menghilangkan noise dengan memudarkan gambar, namun dengan konsekuensi detail gambar juga ikut berkurang.
c. Penjelasan Input-Proses-Output
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)/(2sigmasigma);
Kernel= exp(Exp_comp)/(2pisigma*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.
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. 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(‘peppers.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.
Sumber Referensi:
https://dutormasi.com/2021/01/konvolusi-pada-citra-pengolahan-citra-digital-lengkap.html
https://www.vinniola.com/2020/12/konvolusi-pada-citra.html
http://research-dashboard.binus.ac.id/uploads/paper/document/publication/Journal/MatsTat/Vol.%2012%20No.%202%20Juli%202012/01_Wikaria%20Gazali.pdf