Al Hanif
1907111401
Tugas Pemograman Citra Digital
Konsep Konvolusi 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 Filteringa. 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)-mfor 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
Sumber :
1.https://docplayer.info/31125079-Penerapan-metode-konvolusi-dalam-pengolahan-citra-digital.html
2. http://arpanimaulana.blogspot.com/2016/10/pengertian-teori-konvolusi.html
3. https://core.ac.uk/download/pdf/79435098.pdf
4. http://catatankuliah-tese.blogspot.com/2012/09/filter-blurring-dan-sharpening.html
6. imageeprocessing.com
Komentar
Posting Komentar