MELAKUKAN FILTER MENGGUNAKAN MATLAB




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.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

6 komentar:

Unknown mengatakan...

kalau citra inputnya gak di konver ke grayscale gimna kak koding miin & max filternya kak menggunkan matlab.
mohon bantuannya...

Unknown mengatakan...

cara kerja metode mean filter untuk perbaikan kualitas citra bagaimana? mohon bantuannya.
trimakasih...

Rain Claudio mengatakan...

maaf. mengapa penjelasan filternya tidak lengkap ?

Unknown mengatakan...
Komentar ini telah dihapus oleh pengarang.
Unknown mengatakan...

terimakasih, ijin copy beberapa bagian sebagai referensi laporan

Unknown mengatakan...

mas kalau memakai gui gmana ya?

Posting Komentar