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:
- https://informatika.stei.itb.ac.id/~rinaldi.munir/Citra/2019-2020/08-konvolusi.pdf
- http://research-dashboard.binus.ac.id/uploads/paper/document/publication/Journal/MatsTat/Vol.%2012%20No.%202%20Juli%202012/01_Wikaria%20Gazali.pdf
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
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
Posting Komentar