Konvolusi Pada Pengolahan 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 Sharpen
a. Konsep Metode Sharpen
Sharpening (Penajaman) yaitu memperjelas detil
suatu citra(menambah kontras) dengan penjumlahan atas citra tepi dengan citra
aslinya maka bagian tepi objek akan terlihat berbeda dengan latarnya, sehingga
citra terkesan lebih tajam.
b. Tujuan Metode Sharpen
Proses penajaman berhubungan dengan deteksi tepi
- perubahan warna yang dilemahkan untuk menciptakan efek tepi tajam.
Menggunakan fspecial yang akan membuat filter untuk menajamkan (sharpening)
gambar. Filter khususnya bernama 'unsharp'.
c. Penjelasan Input-Proses-Output Metode Sharpen
Sistem image sharpening pada citra dibangun
menggunakan Matlab berbasis GUI yang dapat dijalankan langsung pada GUI Matlab.
Sistem ini terdiri dari interface dan fungsi-fungsi filter yang dipanggil pada
saat memilih filter.Output yang ditampilkan citra asli beserta histogramnya,
citra blur berserta nilai PSNR, MSE, dan histogramnya dan citra yang telah
diperbaiki atau di sharpening beserta nilai PSNR, MSE dan histogramnya.
Pengamatan kualitatif dilakukan dengan
membandingkan citra secara berjajar sehingga dapat dilihat seberapa baik
kualitas output filter yang dihasilkan. Sedangkan pengamatan kuantitatif
dilakukan dengan menganalisa nilai MSE dalam suatu grafik.
Sistem Keseluruhan sesuai
dengan flowchart pada gambar 4.2 rancangan alur program utama adalah sebagai
berikut :
1.
Inputkan
citra yang akan diuji.
2.
Tampilkan
citra asli dan histogramnya
3.
Citra asli
diblur4. Tampilkan citra asli yg telah di blur beserta PSNR, MSE,
dan histogramnya
4.
Pilih
proses sharpening yang akan digunakan yang terdiri dari mask 3x3 yang nilainya
berbeda-beda.
5.
Tampil
citra hasilsharpening beserta nilai PSNR, MSE dan histogramnya.
Tahapan-tahapan
pada program utama :
·
Tahap
Input Citra
Pada tahap ini merupakan awal proses
penelitian dengan melakukan pengambilan citra. Ada beberapa file citra yang
didukung oleh Matlab, yaitu citra dengan format bitmap (*.bmp), JPEG (*.jpg),
png (*.png) dan tif (*.tif). Citra original dan informasi citra ditampilkan
beserta histogramnya.
· Tahap Proses Sharpening
Tahap ini merupakan tindak lanjut dari tahap bluring pada
citra dimana citra yang sudah mengalami proses blur diproses dengan filter
laplaciandengan mask 3x3, dimana :
Dalam
penelitian ini kita dapat memilih limapilihan sharpening yang diinginkan untuk
menajamkan detil-detil citra yang kurang jelas.
Simulasi
Perhitungan Manual. Proses penajaman citra adalah dengan
melakukan pengurangan smoothed dari citra asli (unsharp masking) proses ini
terdiri dari langkah-langkah berikut :
1. Proses Degradasi Gambar
Asli:
a. Mengaburkan gambar (blurred image) dengan
memberikan efek blur pada Matlab
2. Proses Restorasi (Enhancement):
a. Mengurangi citra yang kabur, yaitu proses
konvolusi menggunakan filter laplacian dan filter gradien.
b. Tambahkan mask ke citra, citra hasil
konvolusi ditambahkan ke citra blur.
3.) Adaptive Local Filtering
i.
Konsep
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
9. Final Image = B – (selisih
noise/selisih nilai lokal)(B-nilai lokal)
ii.
Tujuan
Tujuan dari Adaptive Local Filtering adalah untuk memperbaiki gambar dengan
menjadikan noise yang ada pada gambar memudar.
iii.
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.
iv. 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.
Perbedaan dari Ketiga Metode Konvolusi diatas
yakni :
Gaussian
Filtering |
Sharpen |
Adaptive
Local Filtering |
Memperbaiki
Citra dengan memblur bagian citra |
Mempertajam Citra untuk Citra yang
lebih baik |
Memperbaiki Citra dengan
memburamkan noise yang |
Citra sebelumnya
memiliki noise |
Citra Sebelumnya blur dan memiliki noise |
Citra sebelumnya memiliki jejak noise |
Detail
Gambar menjadi kurang |
Detail Gambar menjadi lebih baik |
Detail tetap tanpa noise |
Komentar
Posting Komentar