menghaluskan citra dengan filter statistik mean, median, max dan min

9
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09 1 MENGHALUSKAN CITRA DENGAN FILTER SPASIAL NON- LINIER: MEDIAN, MEAN, MAX, MIN PADA PENGOLAHAN CITRA DIGITAL 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 nilai hasil pengurutan atau perangkingan tersebut. Filter yang paling dikenal dari jenis ini adalah filter median. Filter ini bekerja dengan menggantikan nilai tengah dari piksel yang dicakup oleh area filter dengan 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 lebih mudah dalam mengolah citra. Kelebihan dari filter median adalah kemampuannya dalam mengurangi derau yang diakibatkan oleh derau acak misalnya jenis salt and pepper noise atau bisa disebut sebagai derau impulse. Dibandingkan dengan 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 mengolah citra berderau sejenis. Selain digunakan untuk menghilangkan derau, filter-filter ini juga digunakan untuk menghaluskan citra digital. Filter non-linier lebih unggul dibanding dengan filter linier dengan ukuran jendela filter yang sama. Selain itu, filter non-linier tidak memerlukan operasi konvolusi terhadap citra original, yang berbeda dengan operasi dari filter linier. A. Filter Median Dalam merancang filter median, 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. Langkah selanjutnya akan ditunjukkan pada pembahasan contoh berikut ini. 3 5 7 1 3 9 5 3 2 6 8 9 4 8 1 6 8 3 4 2 0 6 8 1 7 7 8 9 5 4 7 6 3 6 2 5 1 2 6 4 9 6 5 5 8 3 9 7 9 8 4 5 3 1 6 7 4 7 9 4 5 3 7 6 1 7 4 5 0 8 5 6 7 3 1 2 8 3 6 2 6 7 9 0 0 5 4 2 2 3 1 7 0 5 4 3 7 1 8 Table 1 Matriks Original

Upload: jans-hendry

Post on 04-Jul-2015

2.565 views

Category:

Documents


35 download

DESCRIPTION

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09BAGAIMANA MEMANFAATKAN FILTER SPASIAL NONLINIER: MEDIAN, MEAN, MAX, MIN PADA PENGOLAHAN CITRA DIGITALFilter 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 nilai hasil pengurutan atau p

TRANSCRIPT

Page 1: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

1

MENGHALUSKAN CITRA DENGAN FILTER SPASIAL NON-

LINIER: MEDIAN, MEAN, MAX, MIN PADA PENGOLAHAN

CITRA DIGITAL

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 nilai

hasil pengurutan atau perangkingan tersebut. Filter yang paling dikenal dari jenis ini adalah filter

median. Filter ini bekerja dengan menggantikan nilai tengah dari piksel yang dicakup oleh area filter

dengan 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 lebih

mudah dalam mengolah citra.

Kelebihan dari filter median adalah kemampuannya dalam mengurangi derau yang diakibatkan oleh

derau acak misalnya jenis salt and pepper noise atau bisa disebut sebagai derau impulse. Dibandingkan

dengan 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 mengolah

citra berderau sejenis.

Selain digunakan untuk menghilangkan derau, filter-filter ini juga digunakan untuk menghaluskan citra

digital. Filter non-linier lebih unggul dibanding dengan filter linier dengan ukuran jendela filter yang

sama. Selain itu, filter non-linier tidak memerlukan operasi konvolusi terhadap citra original, yang

berbeda dengan operasi dari filter linier.

A. Filter Median

Dalam merancang filter median, 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.

Langkah selanjutnya akan ditunjukkan pada pembahasan contoh berikut ini.

3 5 7 1 3 9 5 3 2 6 8

9 4 8 1 6 8 3 4 2 0 6

8 1 7 7 8 9 5 4 7 6 3

6 2 5 1 2 6 4 9 6 5 5

8 3 9 7 9 8 4 5 3 1 6

7 4 7 9 4 5 3 7 6 1 7

4 5 0 8 5 6 7 3 1 2 8

3 6 2 6 7 9 0 0 5 4 2

2 3 1 7 0 5 4 3 7 1 8

Table 1 Matriks Original

Page 2: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

Table 2 Matriks NOL

Langkah-langkahnya adalah sebagai berikut:

- Misalkan ukuran jendela filter median yang akan digunakan berukuran 3x3. Operasi

filter akan dimulai dari piksel kiri-atas.

3 5 7 1 3 9 5 3 2 6 8

9 4 8 1 6 8 3 4 2 0 6

8 1 7 7 8 9 5 4 7 6 3

6 2 5 1 2 6 4 9 6 5 5

8 3 9 7 9 8 4 5 3 1 6

7 4 7 9 4 5 3 7 6 1 7

4 5 0 8 5 6 7 3 1 2 8

3 6 2 6 7 9 0 0 5 4 2

2 3 1 7 0 5 4 3 7 1 8

3 5 7

9 4 8

8 1 7 Bila dijadikan 1 baris menjadi:

3, 5, 7, 9 ,4, 8, 8, 1, 7

Bila diurutkan menjadi:

1, 3, 4, 5, 7, 7, 8, 8, 9

3 5 7 1 3 9 5 3 2 6 8

9 7 0 0 0 0 0 0 0 0 6

8 0 0 0 0 0 0 0 0 0 3

6 0 0 0 0 0 0 0 0 0 5

8 0 0 0 0 0 0 0 0 0 6

7 0 0 0 0 0 0 0 0 0 7

4 0 0 0 0 0 0 0 0 0 8

3 0 0 0 0 0 0 0 0 0 2

2 3 1 7 0 5 4 3 7 1 8

Figure 1 Matriks NOL sebagai hasil filter

Tampak bahwa matriks nol akan berubah elemen nya menjadi nilai median dari matriks original sesuai

dengan ukuran dari bagian matriks original yang tercakupi dengan jendela filter. Ada yang sedikit

membingungkan memang, mengapa elemen-elemen paling tepi dari matriks nol sama dengan elemen-

elemen paling tepi dari matriks original. Karena kita tidak akan memproses bagian pinggir tersebut, jelas

tidak mungkin untuk diproses.

Perlu diingat bahwa proses filter itu diperlakukan untuk semua piksel. Jadi ketika proses filter pertama di

atas selesai, maka proses berikutnya berlangsung pada piksel yang tepat disebelahnya. Bila filter telah

mencapai kolom terakhir dalam satu baris, maka filter akan turun satu piksel dan dimulai dari sebelah

kiri. Demikianlah semua proses tersebut terjadi hingga semua nilai 0 pada matriks NOL berubah menjadi

nilai median atau titik tengah dari matriks original yang sesuai dengan ukuran dari jendela filter.

Median/titik

tengah

Page 3: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

3

Setelah beberapa iterasi, maka akan dihasilkan bentuk akhir dari matriks hasil filter seperti di bawah ini:

3 5 7 1 3 9 5 3 2 6 8

9 7 5 7 7 6 5 4 4 6 6

8 6 4 6 6 6 5 4 5 5 3

6 6 5 7 7 6 5 5 5 5 5

8 6 5 7 6 4 5 5 5 5 6

7 5 7 7 7 5 5 4 3 3 7

4 4 6 6 6 5 5 3 3 4 8

3 3 5 5 6 5 4 3 3 4 2

2 3 1 7 0 5 4 3 7 1 8

B. Filter Mean

Sesuai dengan namanya, filter ini akan mengganti sebuah piksel dengan reratanya. Langkah-

langkahnya sama persis dengan filter median, hanya saja pada filter ini operasi yang digunakan

adalah rerata bukan median.

Anda bisa mencoba sendiri untuk menghitungnya, untuk perbandingan maka hasil dari operasi

rerata atau mean terhadap matriks original yang telah disebutkan sebelumnya adalah:

3 5 7 1 3 9 5 3 2 6 8

9 6 5 5 6 6 6 4 4 4 6

8 6 4 5 5 6 6 5 5 4 3

6 5 5 6 6 6 6 5 5 5 5

8 6 5 6 6 5 6 5 5 4 6

7 5 6 6 7 6 5 4 3 4 7

4 4 5 5 7 5 4 4 3 4 8

3 3 4 4 6 5 4 3 3 4 2

2 3 1 7 0 5 4 3 7 1 8

C. Filter Max

Filter max berarti menggantikan piksel dengan nilai tertinggi dari suatu deret yang terbentuk dari

matriks yang sesuai dengan ukuran dari jendela filter. Langkah-langkah lainnya sama dengan

filter median.

Untuk perbandingan buat anda, maka hasil dari filter pada matriks original yang telah disebutkan

sebelumnya adalah:

3 5 7 1 3 9 5 3 2 6 8

9 9 8 8 9 9 9 7 7 8 6

8 9 8 8 9 9 9 9 9 7 3

6 9 9 9 9 9 9 9 9 7 5

8 9 9 9 9 9 9 9 9 7 6

7 9 9 9 9 9 8 7 7 8 7

4 7 9 9 9 9 9 7 7 8 8

3 6 8 8 9 9 9 7 7 8 2

2 3 1 7 0 5 4 3 7 1 8

Page 4: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

D. Filter Min

Filter ini merupakan kebalikan dari filter max. Artinya bahwa piksel akan digantikan dengan

nilai min (minimal) dari sebuah deret dari matriks yang berukuran sesuai dengan jendela matriks

filter.

Untuk lebih jelas, perhatikan contoh berikut sebagai perbandingan. Perhatikan bahwa matriks

originalnya masih sama dengan matriks yang tersebut sebelumnya.

3 5 7 1 3 9 5 3 2 6 8

9 1 1 1 1 3 3 2 0 0 6

8 1 1 1 1 2 3 2 0 0 3

6 1 1 1 1 2 4 3 1 1 5

8 2 1 1 1 2 3 3 1 1 6

7 0 0 0 4 3 3 1 1 1 7

4 0 0 0 4 0 0 0 0 1 8

3 0 0 0 0 0 0 0 0 1 2

2 3 1 7 0 5 4 3 7 1 8

Implementasi filter pada citra digital

Filter-filter tersebut dapat diimplementasikan dalam citra digital. Tujuannya tentu sangat beragam.

Penggunaannya memang untuk tujuan-tujuan tertentu tergantung dengan permasalahan yang sedang

ditangani. Misalnya bila ingin menghaluskan citra atau biasa disebut sebagai image smoothing dan untuk

menghapus derau atau noise eliminating.

Dalam program ini, kita akan mencoba untuk mengolah citra digital menggunakan filter. Hasilnya bisa

berupa penghalusan dan bisa juga berupa penghilangan derau.

Untuk contoh berikut ini adalah proses untuk menghaluskan citra. Langkah-langkah dalam membuat

program matlab untuk mengolah citra digital menggunakan filter-filter di atas adalah:

PS: this program originally developed by me.

� Membaca data dari citra digital.

I=imread('sepatuku','jpg'); imshow(I); title('Citra Asli');

� Menjadikan citra menjadi grayscale lalu mengubahnya ke dalam double precision.

I=rgb2gray(I); I=double(I);

� Membuat matriks dummy atau buffer atau matriks nol.

[x,y]=size(I); dummy=zeros(x,y);

� Membuat matriks filter dalam hal ini jendelanya berukuran 3x3, anda bisa mengubahnya.

Page 5: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

5

m=3; n=3; a=ones(m,n);

� Melakukan operasi penapisan atau filter terhadap matriks original.

Gantilah perintah MEDIAN menjadi MEAN, MAX, MIN sesuai dengan keinginan anda.

Khusus untuk MEAN, pakailah pembulatan ROUND.

for ii=1:x-(m-1) for jj=1:y-(n-1) aa=a.*I(ii:m+ii-1,jj:n+jj-1); b=reshape(aa,1,m*n); b=sort(b); b=median(b); dummy(ii+1,jj+1)=b; end end

� Menyusun kembali matriks akhir setelah di filter.

for ii=2:x-1 for jj=1:y if jj==1 n=I(ii,jj); elseif jj==y n=I(ii,jj); else n=0; end mmed(ii-1,jj)=n; end end mmed=[I(1,:);mmed;I(x,:)]; mmed=mmed+dummy;

� Menampilkan citra hasil filter smoothing.

figure, imshow(mmed,[0 255]); title('Citra Hasil Filter');

Hasil eksekusi program untuk ke empat filter tersebut adalah:

Page 6: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

*** median

*** mean

*** max

Page 7: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

7

*** min

Perlu diketahui untuk filter min, maka bisa saja terjadi pada citra hasil tapis akan timbul warna gelap

yang berbentuk blok-blok, sedangkan untuk filter max akan menyebabkan warna terang yang berbentuk

blok-blok. Lokasi nya juga acak.

Sebagai contoh aplikasi dari filter median untuk menapis citra yang terkena derau salt and pepper.

Perhatikan code berikut ini:

% membaca citra I=imread('sepatuku','jpg'); imshow(I); title('Citra Asli');

I=imnoise(I,'salt & pepper',0.02); figure, imshow(I); title('Citra Dengan Noise S&P'); I=rgb2gray(I); %%

%% membuat matriks dummy

Page 8: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

I=double(I); [x,y]=size(I); dummy=zeros(x,y); m=3; n=3; a=ones(m,n); %%

%% filter for ii=1:x-(m-1) for jj=1:y-(n-1) aa=a.*I(ii:m+ii-1,jj:n+jj-1); b=reshape(aa,1,m*n); b=sort(b); b=min(b); dummy(ii+1,jj+1)=b; end end %%

%% matriks akhir setelah di filter for ii=2:x-1 for jj=1:y if jj==1 n=I(ii,jj); elseif jj==y n=I(ii,jj); else n=0; end mmed(ii-1,jj)=n; end end mmed=[I(1,:);mmed;I(x,:)]; mmed=mmed+dummy; %%

%% menampilkan citra grayscale dengan range 0-255 figure, imshow(mmed,[0 255]); title('Citra Hasil Filter'); %%

Hasil eksekusinya adalah:

Page 9: Menghaluskan Citra dengan Filter Statistik Mean, Median, Max Dan Min

Pengolahan citra digital by Jans Hendry / S2 TE UGM 09

9

*** citra kena derau salt and pepper

*** citra hasil tapis median terhadap citra berderau

Pemanfaatan filter lain untuk menapis derau akan dibahas pada artikel lainnya.

TERIMA KASIH

Referensi:

- R. Gonzalez and R. Woods. Digital Image Processing. Addison Wesley

- www.image.google.co.id

- email: [email protected]