MELAKUKAN
FILTER MENGGUNAKAN MATLAB
OLEH
NUR
FADILAH
1229041028
PTIK 04
PENDIDIKAN
TEKNIK INFORMATIKA DAN KOMPUTER
FAKULTAS
TEKNIK
UNIVERSITAS
NEGERI MAKASSAR
2014
KATA PENGANTAR
Puji
syukur kami panjatkan kehadirat Tuhan Yang Maha Esa, karena berkat limpahan
Rahmat dan Karunia-nya sehingga penulis dapat menyusun laporan yang berjudul
“Melakukan Filter Menggunakan MATLAB” .
Laporan ini dibuat berdasarkan rujukan dan
referensi dari berbagai sumber. Laporan ini berisi tentang jenis-jenis filter pada
program MATLAB, cara melakukan filter pada program MATLAB, dan perbedaan
filter-filter yang ada pada Matlab.
Kami
menyadari bahwa masih banyak kekurangan yang mendasar pada makalah ini. Oleh
karena itu kami mengundang pembaca untuk memberikan saran serta kritik yang
dapat membangun. Akhir kata semoga makalah ini dapat memberikan manfaat bagi
kita sekalian.
Makassar, 7 Maret 2014
Penulis
A.
JUDUL
PERCOBAAN
Melakukan
Filter Menggunakan MATLAB
B.
TUJUAN
PERCOBAAN
1. Mengetahui
dan mampu membedakan jenis-jenis filter.
2. Mengetahui
cara melakukan filter menggunakan software MATLAB R2013b
C.
TEORI
DASAR
MATLAB
(matrix laboratory) adalah sebuah lingkungan komputasi numerikal dan bahasa
pemrograman komputer generasi keempat. Dikembangkan oleh The MathWorks, MATLAB
memungkinkan manipulasi matriks, pem-plot-an fungsi dan data, implementasi
algoritma, pembuatan antarmuka pengguna, dan peng-antarmuka-an dengan program
dalam bahasa lainnya. Meskipun hanya bernuansa numerik, sebuah kotak kakas
(toolbox) yang menggunakan mesin simbolik MuPAD, memungkinkan akses terhadap
kemampuan aljabar komputer. Sebuah paket tambahan, Simulink, menambahkan
simulasi grafis multiranah dan Desain Berdasar-Model untuk sistem terlekat dan
dinamik.
1. Sejarah
Matlab
MATLAB
(yang berarti "matrix laboratory") diciptakan pada akhir tahun
1970-an oleh Cleve Moler, yang kemudian menjadi Ketua Departemen Ilmu Komputer
di Universitas New Mexico. Ia merancangnya untuk memberikan akses bagi
mahasiswa dalam memakai LINPACK dan EISPACK tanpa harus mempelajari Fortran.
Karyanya itu segera menyebar ke universitas-universitas lain dan memperoleh
sambutan hangat di kalangan komunitas matematika terapan. Jack Little, seorang
insinyur, dipertemukan dengan karyanya tersebut selama kunjungan Moler ke
Universitas Stanford pada tahun 1983. Menyadari potensi komersialnya, ia bergabung
dengan Moler dan Steve Bangert. Mereka menulis ulang MATLAB dalam bahasa
pemrograman C, kemudian mendirikan The MathWorks pada tahun 1984 untuk
melanjutkan pengembangannya. Pustaka yang ditulis ulang tadi kini dikenal
dengan nama JACKPAC.[rujukan?] Pada tahun 2000, MATLAB ditulis ulang dengan
pemakaian sekumpulan pustaka baru untuk manipulasi matriks, LAPACK[.
MATLAB
pertama kali diadopsi oleh insinyur rancangan kontrol (yang juga spesialisasi
Little), tapi lalu menyebar secara cepat ke berbagai bidang lain. Kini juga
digunakan di bidang pendidikan, khususnya dalam pengajaran aljabar linear dan
analisis numerik, serta populer di kalangan ilmuwan yang menekuni bidang
pengolahan citra.
2. Pengolahan
Citra
Pengolahan citra adalah salah satu cabang dari ilmu
informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi
suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu. Berikut
ini adalah definisi dasar yang dipergunakan dalam pengolahan citra :
a. Citra,
Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi
yang kontinu menjadi gambar diskrit melalui proses sampling.
b. Gambar
analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit.
Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya
adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel
[n,m].
c. Sampling,
Sampling adalah proses untuk menentukan warna pada piksel tertentu pada citra
dari sebuah gambar yang kontinu. Pada proses sampling biasanya dicari warna
rata-rata dari gambar analog yang kemudian dibulatkan. Proses sampling sering
juga disebut proses digitisasi.
d. Kuantisasi,
Ada kalanya, dalam proses sampling, warna rata-rata yang didapat di relasikan
ke level warna tertentu. Contohnya apabila dalam citra hanya terdapat 16
tingkatan warna abu-abu, maka nilai rata-rata yang didapat dari proses sampling
harus diasosiasikan ke 16 tingkatan tersebut. Proses mengasosiasikan warna
rata-rata dengan tingkatan warna tertentu disebut dengan kuantisasi.
e. Derau,
Derau (Noise) adalah gambar atau piksel yang mengganggu kualitas citra. Derau
dapat disebabkan oleh gangguan fisis(optik) pada alat akuisisi maupun secara
disengaja akibat proses pengolahan yang tidak sesuai. Contohnya adalah bintik
hitam atau putih yang muncul secara acak yang tidak diinginkan di dalam citra.
bintik acak ini disebut dengan derau salt & pepper. Banyak metode yang ada
dalam pengolahan citra bertujuan untuk mengurangi atau menghilangkan noise.
f. Operasi
pengolahan citra, Operasi yang dilakukan untuk mentransformasikan suatu citra
menjadi citra lain dapat dikategorikan berdasarkan tujuan transformasi maupun
cakupan operasi yang dilakukan terhadap citra.
Berdasarkan tujuan transformasi operasi pengolahan
citra dikategorikan sebagai berikut :
·
Peningkatan Kualitas Citra (Image
Enhancement)
Operasi peningkatan
kualitas citra bertujuan untuk meningkatkan fitur tertentu pada citra.
·
Pemulihan Citra (Image Restoration)
Operasi pemulihan citra
bertujuan untuk mengembalikan kondisi citra pada kondisi yang diketahui
sebelumnya akibat adanya pengganggu yang menyebabkan penurunan kualitas citra.
3. Filtering
Dalam Matlab
Filter
spasial non-linier atau disebut juga dengan filter statistik berdasar urutan (order-statistic
filter) merupakan filter yang respon nya didasarkan pada urutan atau rangking
piksel yang ada dalam citra yang dicakup oleh area filter dan menggantikan
nilai dari piksel yang berada di tengah digantikan dengan nila ihasil
pengurutan atau perangkingan tersebut.
Filer
ini digunakan untuk menghilangkan derau
dan filter-filter ini juga digunakan untuk menghaluskan citradigital. Filter
non-linier lebih unggul dibanding dengan filter linier dengan ukuran jendela
filter yangsama. Selain itu, filter non-linier tidak memerlukan operasi konvolusi
terhadap citra original, yangberbeda dengan operasi dari filter linier
a.
Filter
median
Filter
yang paling dikenal dari jenis ini adalah filter median.
Filter ini bekerja
dengan menggantikan nilai tengah dari piksel yang dicakup oleh area
filterdengan sebuah nilai tengah (median) setelah diurutkan terlebih dahulu
dari yang terkecil ke yang terbesar. Biasanya ukuran filter adalah ganjil
karena akan memberikan poros tengah, sehingga akan lebihmudah dalam mengolah
citra
Kelebihan
dari filter median adalah kemampuannya dalam mengurangi derau yang diakibatkan
olehderau acak misalnya jenis salt and pepper noise atau bisa disebut sebagai
derau impulse. Dibandingkandengan jenis filter spasial (ruang) non-linier
lainnya, filter median merupakan filter yang paling cocok untuk kasus tersebut.
Sehingga filter ini dinobatkan menjadi filter yang paling ampuh dalam
mengolahcitra berderau sejenis.
Dalam
merancang median filter, ada beberapa hal yang harus dipersiapkan terlebih
dahulu.
-
Siapkan
matriks yang akan
diolah. Bila matriks
berisi citra, maka
jadikan citra tersebut menjadi citra grayscale atau abu-abu
agar yang didapat hanya 1 matriks intensitas saja.
-
Siapkan
matriks yang NOL
yang ukurannya sama
persis dengan citra yang
akan diolah. Matriks ini nantinya
akan berisi nilai-nilai intensitas dari citra asli yang sudah diolah terlebih
dahulu.
Berikut
flowchart dalam melakukan filter median
Gambar
4.1 Flowchart Median Filter
b.
Filter
maximum
Filter
max berarti menggantikan piksel dengan nilai tertinggi dari suatu deret yang
terbentuk darimatriks yang sesuai dengan ukuran dari jendela filter.
Langkah-langkah lainnya sama denganfilter median. Pada
c.
Minimum
filter
Filter
ini merupakan kebalikan dari filter maksimum dimana piksel akan digantikan
dengan nilai minimum dari sebuah deret matriks yang berukuran sesuai dengan
matriks filter.
d.
Filter
Mid-point
Mid-Point
Filtering adalah mengganti nilai sel bitmap dengan nilai tengah diantara nilai
terkecil dan terbesar dari area lokal.
e.
Filter
Laplacian
Laplacian
merupakan filter turunan yang fungsinya dapat mendeteksi area yang
memilikiperubahan cepat (rapid changes) seperti tepi (edge) pada citra. Namun,
laplacian ini sangat rentan atau sensitif terhadap kehadiran derau. Untuk itu,
citra yang akan dideteksi tepinyaperlu dihaluskan terlebih dahulu dengan
menggunakan Gaussian. Dengan demikian dikenaladanya fungsi turunan baru yakni LOG
atau Laplacian of Gaussian
LOG
memiliki bentuk:
f.
Filter
Sobel
Metode
sobel Merupakan metode yang menggunakan operator Sobel. Operator ini menggunakan dua buah kernel yang
berukuran 3x3 piksel untuk perhitungan gradien sehingga perkiraan gradien berada
tepat ditengah jendela.
Besaran
Gradien yang dihitung dengan Operator sobel adalah sebagai berikut:
g.
Geometric
mean filter
Mean
filter merupakan salah algoritma memperhalus citra dengan cara perhitungan
nilai intensitas rata-rata citra pada setiap blok citra yang diproses.
Algoritma yang umum digunakan adalah Arithmetic dan Geometric Mean Filter.
Pada
algoritma Geometric Mean Filter proses yang dilakukan adalah sama dengan
Arithmetic Mean Filter dengan rumus:
Pada algoritma
ini setiap pixel yang diperbaiki oleh hasil kali masing-masing pixel dalam
subimagewindow, kemudian dipangkatkan dengan i/mn.
D.
LANGKAH
KERJA
1.
Filter Median
a. Pastikan
software matlab median telah terinstal di computer anda, jalankan program
tersebut dengan cara klik start >>
pilih MATLAB R2013b
b. Letakkan
foto yang anda akan filter pada folder Matlab yang berada pada directori
“Documents”
c. Pada
lembaran pertama dari program klik new script untuk membuka lembaran baru
tempat menulis script dari program yang anda buat
d. Pada
jendela baru (jendela editor), ketikkan script di bawah ini:
gambar=imread('Anna.jpg');
gray=rgb2gray(gambar);
noise=imnoise(gray,'Salt & Pepper',0.03);
noise2=imnoise(gray,'Gaussian',0.2);
awal=medfilt2(gray);
k=medfilt2(noise);
k2=medfilt2(noise2);
figure,imshow(awal),title('Pelembutan Citra Awal');
figure,imshow(k),title('Pelembutan Citra Noise Salt&Pepper');
figure,imshow(k2),title('Pelembutan Citra Noise Gaussian');
|
e. Jalankan
program dengan cara klik Run
f. Pada
saat anda menjalankan program, maka akan muncul perintah untuk menyimpan
program, simpan program anda dengan cara mengetik nama program contohnya
“median” >> save
g. Program
akan berjalan dan hasilnya akan tampil
2. Filter
maximum
a. Untuk
membuat lembaran baru, klik new pada jendela editor pada program MATLAB R2013
b. Pada
lembar baru, ketikkan sintaks di bawah ini:
%Syntax
pengimputan Gambar
Gambar =
imread ('Anna.jpg');
%Syntax
mengubah gambar RGB ke GRAY
Gray =
rgb2gray (Gambar);
%Lihat
gambar
imshow (Gray),
title ('Gambar Gray');
%Lakukan
Filter Maximum
FilterMax =
nlfilter (Gray, [3,3],'max(x(:))');
%Lihat
Gambar hasil Filter
imshow
(FilterMax), title ('Hasil Filter Maximum')
|
c. Ikuti
langkah kerja d dan e pada filter median, yaitu menjalankan program dan
menyimpannya maka hasil dari program tersebut akan muncul.
3. Filter
Minimum
a. Langkah
kerja filter maxsimum sama dengan filter minimum, namun memiliki sintaks yang
berbeda, yaitu:
I = imread ('Anna.jpg');
gray =
rgb2gray (I);
If = nlfilter(gray,[3,3],'min(x(:))');
figure,imshow(I),title('citra input');
figure,imshow(gray),title('citra Gray');
figure,imshow(If),title('citra filter min');
|
b. Jalankan
program sama seperti pada langkah kerja sebelumnya dan hasilnya akan muncul
4. Filter
mid point filter
a. Ikuti
langkah kerja yang sama dengan program-program sebelumnya, namun dengan sintaks
yang berbeda. Sintaks dari mid point filter adalah:
K = imread('Anna.jpg');
figure,imshow(K),title('original
image');
I=imnoise(K,'gaussian');
figure,imshow(I),title('Image with
gaussian noise');
[M N]=
size(K);
[m
n]=size(I);c=ones(3,3)/9;
[p
q]=size(c);p=(p-1)/2;q=(q-1)/2;
z=I;
for i=p+1:m-p
for j=q+1:n-q
mask1=zeros(3,3);
for k=-p: p
for l=-q: q
mask1(p+1-k,q+1-l)=I(i-k,j-l);
end
end
mid1=mask1(:
);
mid1=(min(mid1)+max(mid1))/2;
z(i,j)=mid1;
end
end
figure,imshow(uint8(z)),title('mid point
filtered image');
|
b. Jalankan
program, sepertiyang telah dilakukan sebelumnya, dan hasil akan tampil pada
window – window baru
5. Filter
Laplacian
a. Lakukan
hal yang sama dengan apa yang anda telah lakukan pada percobaan sebelumnya,
pada lembaran baru tuliskan sintaks dibawah ini:
%%
create a new figure to show the image .
newImg = imread('Anna.jpg');
figure(1);
imshow(newImg);
figure(2);
%% create laplacian filter.
H = fspecial('laplacian');
%% apply laplacian filter.
blurred = imfilter(newImg,H);
imshow(blurred); title('Edge detected Image')
|
b. Ikuti
langkah kerja pada percobaan sebelumnya. Dan hasil akan muncul pada jendela
baru.
6. Filter
Sobel
a. Ikuti
langkah kerja pada percobaan sebelumnya.
b. Pada
jendela tempat penulisan sintaks, tulislah sintaks dibawah:
l=imread('Anna.jpg');
l1=rgb2gray(l);
l2=fft(double(l1));
l2_1=fft(double(l));
figure,imshow(l),title('Original image');
figure,imshow(l1),title('Gray scale image ');
h=fspecial('sobel');
l_sobel=uint8(round(filter2(h,l1)));
l_sobel_1=fft(double(l_sobel));
figure,imshow(l_sobel),title('Sobel filtered image')
|
c. Jalankan
dan simpan program, maka hasilnya akan tampil di window – window baru.
7. Filter
Geometric Mean
a. Lakukan
hal yang sama dengan percobaan sebelumnya, dan pada jendela editor, ketikkan
sintaks di bawah ini:
I = imread('Anna.jpg');
f = imnoise(I,'gaussian',0,0.01);
f =
im2double(f);
[m n]=size(f);
si=1;
for i = 1:m
for j = 1:n
con=0; s1=1;
for k1 =
i-si:i+si
for p1 =
j-si:j+si
if ((k1 > 0
&& p1 > 0) && (k1 < m && p1 < n ))
con = con+1;
s1=s1*f(k1,p1);
end
end
end
b1(i,j)=s1^(1/con);
end
end
imshow(b1),title('Geometric
mean filtered');
|
b. Jalankan
dan simpan program yang anda telah buat, maka hasilnya akan muncul pada jendela
baru
E.
HASIL
Foto
asli:
1. Filter
Median
2. Filter
Maximum
3. Filter
Minimum
4. Filter
Midpoint
5. Filter
Laplacian
6. Filter
Sobel
7. Filter
Geometric mean
F. ANALISIS
1. Filter
Median
Melalui
script filtering median kita dapat menganalisis bahwa gambar=imread('Anna.jpg');merupakan
intruksi untuk menginput gambar Anna ke dalam program matlab untuk diolah, gray=rgb2gray(gambar); bertujuan untuk merubah warna
gambar menjadi gray agar lebih mudah dalam melakukan filtering, noise=imnoise(gray,'Salt & Pepper',0.03); intruksi
ini bertujuan untuk menambahkan efek noise yang berupa bintik-bintik halus pada
gambar, noise2=imnoise(gray,'Gaussian',0.2); intruksi
ini merupakan intruksi untuk melakukan filtering median atau biasa disebut
gaussian. kemudian langkah selanjutnya adalah untuk menganalisasi atau
mengkodekan hasil filtering dengan intruksi :
awal=medfilt2(gray);
k=medfilt2(noise);
k2=medfilt2(noise2);
di atas, sangat jelas
bahwa label awal adalah median filter untuk gambar gray, k untuk gambar filter
paper n salt noise, dan k2 untuk gambar yang telah difiltering. lalu langkah
selanjutnya adalah menampilkan semua gambar yang telah difiltering dengan
intruksi:
figure,imshow(awal),title('Pelembutan
Citra Awal');
figure,imshow(k),title('Pelembutan
Citra Noise Salt&Pepper');
figure,imshow(k2),title('Pelembutan
Citra Noise Gaussian');
ketiga gambar di
tampilkan dengan title yang n .
2. Filter
Maksimun
Pada filter Maksimum, pertama-tama
gambar di tampilkan dalam program metlab dengan intruksi Gambar = imread ('Anna.jpg'); Gambar merupakan label
untuk foto/ gambar yang diinputkan, lalu mengubahnya warna gambar menjadi gray
agar lebih mudah di filter dengan intruksi Gray =
rgb2gray (Gambar); selanjutnya hasil perubahan warna foto di tampilkan
dengan intruksi imshow (Gray), title ('Gambar Gray');. setelah
gambar di tampilkan maka dilakukanlahfiltering maksimum dengan intruksi FilterMax = nlfilter (Gray, [3,3],'max(x(:))'); .
terakhir gambar ditampilkan dengan intruksi imshow
(FilterMax), title ('Hasil Filter Maximum'
3. Filter
Minimum
Hampir
sama dengan sebelumnya, dengan intruksi I = imread
('Anna.jpg'); gambar di inputkan masuk ke program dengan label I, lalu
gambar dirubah warna ke gray deengan intruksi gray =
rgb2gray (I); dengan label gray, dan dengan label If gambar difilter
dengan intruksi If = nlfilter(gray,[3,3],'min(x(:))'); setelah
itu, maka semua label dari ketiga gambar di panggil untuk di tampilkan dengan
intruksi
figure,imshow(I),title('citra
input');
figure,imshow(gray),title('citra
Gray');
figure,imshow(If),title('citra
filter min');
4. Filter
Laplacian
Filter
Laplacian, dimulai dengan membaca gambar dengan intruksi newImg = imread('Anna.jpg'); newImg merupakan
label untuk gambar, setelah di baca gambar ditampilkan dengan intruksi
figure(1);
imshow(newImg);
Figure (1) disini merupakan title untuk gambar kemudian
imshow(nwImg) merupakan intruksi untuk menampilkan gambar yang telah dibaca
sebelumnya. Untuk gambar selanjutnya kita menggunakan title figure (2); sebelum
di tampilkan, maka gambar terlebih dahulu di filter dengan intruksi
H = fspecial('laplacian');
blurred = imfilter(newImg,H);
Intruksi H = fspecial('laplacian'); merupakan
intruksi untuk menyatakan bahwa label H merupakan label untuk proses filtering
gambar, kemudian intruksi blurred = imfilter(newImg,H); merupakan
pengaplikasian dari filter tersebut, dimana di dalam label blurred terdapat
perintah yang menyatakan bahwa imfilter (lakukan filter) newImg, H berarti
gambar dengan label newImg difilter dengan filtering laplacian (H)
Terakhir gambar di tampilkan dengan
intruksi imshow(blurred); title('Edge detected
Image')
5. Filter
Sobel
Pada
filter sobel, seperti pada intruksi filter sebelumnya gambar dibaca oleh
program dengan intruksi l=imread('Anna.jpg'); disini kita menggunaka label
disetiap intruksi label 1 diberikan untuk intruksi pembacaan gambar ini, lalu
gambar diubah warna menjadi gray dengan intruksi l1=rgb2gray(l); label l1
merupakan label untuk merubah warna gambar menjadi gray, selanjutnya intruksi l2=fft(double(l1)); l2_1=fft(double(l));
Maksud
dari kedua intruksi ini, bahwa kedua intruksi yang sebelumnya kita tinggalkan untuk
menampilkan gambar dengan intruksi
figure,imshow(l),title('Original
image');
figure,imshow(l1),title('Gray
scale image ');
Kedua intruksi
ini menandakan bahwa gambar asli dan gambar yang diubah warna ke gray di
tampilkan pada program. Kemudian masuk ke proses filter dengan intruksi h=fspecial('sobel'); l_sobel=uint8(round(filter2(h,l1))); pada label h berarti penginialisasi filter
sobel, lalu pada label l_sobel berarti pengaplikasian filter sobel terhadap
gambar l1 (gambar dengan warna gray). Selanjutnya intruksi untuk meninggalkan
proses filtering dengan sintaks l_sobel_1=fft(double(l_sobel));, terakhir,
gambar ditampilkan dengan intruksi figure,imshow(l_sobel),title('Sobel filtered
image')
G. KESIMPULAN
Pengolahan citra sangat bermanfaat
bagi kehidupan manusia, mulai dari kesehatan, keamanan, dan berbagai maafaat
lainnya. Setiap proses dari filter ini memiliki sintaks dan hasil filter yang
berbeda pula.
6 komentar:
kalau citra inputnya gak di konver ke grayscale gimna kak koding miin & max filternya kak menggunkan matlab.
mohon bantuannya...
cara kerja metode mean filter untuk perbaikan kualitas citra bagaimana? mohon bantuannya.
trimakasih...
maaf. mengapa penjelasan filternya tidak lengkap ?
terimakasih, ijin copy beberapa bagian sebagai referensi laporan
mas kalau memakai gui gmana ya?
Posting Komentar