all of andyQ

what you get is what you share……….

Pemfilteran Domain Spasial

Posted by Andik on February 20, 2010

Sebenarnya istilah filter mengacu pada proses melakukan penyaringan komponen frekuensi tertentu (yang sama diterima, yang tidak ditolak). Jika kita ingat kembali pelajaran tentang filter di Teknik Elektro, kita tahu bahwa filter lolos rendah (Low Pass Filter/LPF) akan meloloskan komponen yang berfrekuensi rendah, dalam image processing LPF akan menghasilkan citra Blur (lembut/halus). Lalu filter dalam pengolahan citra bentuknya seperti apa? Biasanya dalam bentuk piksel berukuran 2×2, 3×3 atau 5×5 dan seterusnya, tergantung kebutuhan, dan piksel ini biasa disebut dengan mask atau kernel ataupun window. Kalau saya menyebutnya saringan, karena cara kerjanya memang mirip saringan🙂.

Pemfilteran domain spasial adalah proses manipulasi kumpulan piksel dari sebuah citra untuk menghasilkan citra baru[1]. Aplikasinya untuk perbaikan kualitas citra.

Bagaimana cara kerjanya?

Kita ambil contoh sebuah citra f(x,y) berukuran MxN, dan mask/filter g(x,y) dengan ukuran 3×3 seperti gambar berikut:.

(a)

(b)

Gambar 1. (a) Citra f(x,y) berukuran MxN, (b) Filter/Mask g(x,y) berukuran 3×3

Kita akan memfilter titik (x,y) pada bagian citra yang diblok merah dengan filter g(x,y) ditulis dengan persamaan berikut.

Hasil dari pemfilteran titik dinotasikan dengan h(x,y), dan w0,w1,..w7, adalah bobot filter g(x,y). Secara umum persamaan (1) dapat dituliskan kembali menjadi

Korelasi dan Konvolusi

Korelasi adalah perkalian antara dua buah fungsi f(x,y) dan g(x,y). Untuk fungsi diskrit korelasi didefinisikan dengan persamaan berikut.

Dimana x,y,k dan l adalah variabel yang menunjukkan posisi titik pada citra. M dan N adalah batas titik tetangga yang masih memberikan pengaruh pada titik yang difilter. Sedangkan h(x,y) adalah hasil korelasi dari citra f(x,y) dengan filter g(x,y).

Contohnya : sebuah citra grayscale f(x,y) berukuran 5×4 mempunyai 8 skala keabuan, dan filter g(x,y) ukuran 3×3 berikut

Gambar 2. Sebuah citra f(x,y) akan dikorelasikan dengan filter g(x,y)

Langkah awalnya kita akan mulai dari pojok kiri atas citra f(x,y) yang seukuran dengan filternya yaitu 3×3, kemudian dilakukan perhitungan korelasinya dengan filter g(x,y).

Setelah itu hasil korelasi ditempatkan pada matrik baru h(x,y).

Gambar 3. Korelasi pada piksel f(2,2)dengan g(x,y)

Kemudian filter digeser kekanan satu piksel, dan selanjutnya dihitung korelasinya dengan filter g(x,y).

Gambar 4. Korelasi pada piksel f(2,3) dengan g(x,y)

Demikian langkah selanjutnya untuk piksel-piksel f(x,y) yang lain hingga pojok kanan bawah. Lalu bagaimana dengan piksel yang ditepi citra? Ada yang berpendapat tidak perlu dihitung, ada pula yang dihitung dengan catatan bahwa piksel tetangga yang terlibat dalam perhitungan tidak perlu semuanya.

Konvolusi prosesnya sama dengan korelasi, hanya saja filternya dibalik dulu 180o. Jadi jika citra f(x,y) dikonvolusi dengan filter g(x,y) berikut,

Maka filter perlu dibalik dulu 180o, kemudian dilakukan perhitungan seperti korelasi.

Implementasi dengan Delphi

Untuk mengimplementasikan pemfilteran dalam sebuah kode pemrograman Delphi kita perlu gunakan penyelesaian matematika diskrit menggunaan teknik pengulangan (looping), yaitu menggunakan for..to..do. Sebelumnya kita perlu definisikan matrik filter

Sebagai contoh pada persamaan (3) diatas, jika kita implementasikan dalam program akan seperti berikut:


dummy := 0;

for k:= 0 to M do

  for l:= 0 to N do

    dummy:= f[k,l]*g[x-k,y-l];

h := dummy;

Nilai M adalah lebar citra, atau dapat digantikan dengan Image1.Picture.Width-1. Sedangkan N adalah tinggi citra, diganti dengan Image1.Picture.Height-1. Pergeseran filter atau mask dilakukan dengan mengurangi posisi piksel

Referensi:

[1] Sutoyo,T., Edy Mulyanto, Vincent Suhartono, Oky Dwi Nurhayati, Wijanarto, Teori Pengolahan Citra Digital, UDINUS, Penerbit Andi, 2009

One Response to “Pemfilteran Domain Spasial”

  1. Meisya said

    mas,, mw tanya,,
    gimana caranya mendeteksi kemiringan image, merotasi image dengan sudut bebas,, asumsi gambar tidak tegak lurus,, dibuat jadi tegak lurus,,
    *ingin implementasi utk citra hasil scan,, dibaca kemiringanny,, trus diluruskan

    mohon bantuannya,, makasi

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: