500 likes | 1.08k Views
Pengolahan Citra (TIF05). 5 – Filtering disusun oleh Teady Matius ( teadymatius@yahoo.com , tmulyana@ubm.ac.id ). Filtering. Filtering meloloskan (menerima) komponen dengan frekwensi tertentu dan menghilangkan (menolak) komponen dengan frekwensi yang lain
E N D
Pengolahan Citra(TIF05) 5 – Filtering disusun oleh Teady Matius (teadymatius@yahoo.com, tmulyana@ubm.ac.id)
Filtering • Filtering meloloskan (menerima) komponen dengan frekwensi tertentu dan menghilangkan (menolak) komponen dengan frekwensi yang lain • Diperlukan sebuah filter g(x,y) berupa matriks berukuran n x n, (umumnya 3x3) yang tiap-tiap sel-sel nya berisi bobot filtering. Ada yang menyebutnya sebagai filter, mask, kernel, ataupun window • Setiap titik (x,y) pada citra f(x,y) di filter dengan filter g(x,y) menghasilkan h(x,y) • h(x,y) hasil filtering pada titik (x,y)
Mekanisme Filtering Spasial • Letakkan filter g(x,y) mulai dari titik (x-1, y-1) dari titik (x,y) yang akan dilakukan filtering. • Hitung h(x,y) berdasarkan sel-sel pada titik tersebut dan titik-titik tetangganya dengan bobot pada sel-sel matriks filter g(x,y) sesuai dengan posisi sel-selnya. • Secara umum persamaannya adalah: h(x,y) = wo.f(x,y) + w1.f(x-1,y-1) + w2.f(x,y-1) + w3.f(x+1,y-1) + w4.f(x+1,y) + w5.f(x+1,y+1) + w6.f(x,y+1) + w7.f(x-1,y+1) + w8.f(x-1,y) • Filtering dilakukan mulai dari sudut atas matriks sampai sudut bawah matriks
Jenis-jenis Filtering • Filter Spasial Linier • Bekerja dengan cara korelasi atau konvolusi • Contoh: filter rata-rata, filter gaussian • Memerlukan matriks mask/kernel • Filter Spasial Non Linier (order-statistics fitlers) • Respon berdasarkan pengurutan intensitas piksel-piksel tetangga • Contoh: filter maksimum, filter minimum, filter rata-rata, filter median,
Filter Spasial Non Linier • Filtering dengan meloloskan suatu nilai yang didapatkan dari proses non linear. • Beberapa contoh yang didapat dari operasi statistik • Mean Filtering mengganti nilai sel bitmap dengan nilai rata-rata dari area lokal. • Minimum Filtering mengganti nilai sel bitmap dengan nilai terkecil dari area lokal. • Maximum Filtering mengganti nilai sel bitmap dengan nilai terbesar dari area lokal. • Mid-Point Filtering mengganti nilai sel bitmap dengan nilai tengah diantara nilai terkecil dan terbesar dari area lokal. • Median Filtering mengganti nilai sel bitmap dengan nilai median dari area lokal yang sudah disort. • Merupakan Operasi tingkat lokal
Filtering Spasial Linear • Filtering yang dilakukan dengan operasi linear berupa konvolusi atau korelasi antara Area lokal suatu sel bitmap dengan kernel • Merupakan operasi tingkat lokal
Kernel / Mask / Penapis / Window • Berupa matriks 2x2, 3x3, 4x4, 5x5, dsb. • Mempunyai sel pusat, dimana sel bitmap yang akan diproses terdapat pada sel tersebut • Contoh pada matriks 3x3 pusatnya adalah sel (2,2); pada matriks 5x5 pusatnya adalah sel (3,3) • Untuk matriks dengan ordo genap pemilihan sel pusat dilakukan dengan melakukan pembulatan ke bawah dari n/2 untuk kolom dan m/2 untuk baris • Contoh pada matriks 2x2 sebagai pusat adalah sel (1,1), pada matriks 4x4, pusatnya adalah sel (6,2).
Korelasi dan Konvolusi • Korelasi: Perkalian antara dua fungsi f(x,y) dan g(x,y) • Konvolusi: Perkalian antara dua fungsi f(x,y) dan g(x,y) Dimana fungsi g(x,y) konvolusi berkebalikan dengan g(x,y) pada korelasi • Dipergunakan untuk melakukan pemfilteran spasial linier dengan melakukan korelasi ataupun konvolusi kedua fungsi f(x,y) dan g(x,y)
Persamaan Korelasi • x, y, k, l variabel bebas yang memiliki nilai diskrit, dimana x dan y adalah koordinat piksel yang sedang diolah, k dan l adalah koordinat dari piksel dalam suatu area lokal yang memperngaruhi hasil h(x,y) • h(x,y) hasil pada koordinat x,y • f(x,y) fungsi f yang mengolah piksel x,y berikut tetangganya • g(x,y) fungsi filter untuk mengolah piksel x,y • M, N batas titik tetangga yang mempengaruhi titik yang sedang diolah
Contoh Implementasi Korelasi . . . for y = 1 to tinggiBitmap do for x = 1 to lebarBitmap do hasilBitmap[x,y] = korelasi(x, y, m, n) . . . • x, y koordinat bitmap yang sedang diproses • m lebar kernel • n tinggi kernel
Contoh 1.aAlgoritma Function Korelasi(untuk kernel 3 X 3) function korelasi(x, y):integer; begin hasil = 0; for l=1 to 3 do for k=1 to 3 do hasil = hasil + g[k,l] * f[x+(k-3+1),y+(l-3+1)]; return hasil; end; g kernel f bitmap
Contoh 1.bAlgoritma Function Korelasi(untuk kernel m X n) function korelasi(x, y, m, n):integer; begin hasil = 0; for l=1 to n do for k=1 to m do hasil = hasil + g[k,l] * f[x+Ht+(k-m+Ht),y+Vt+(l-n+Vt)]; return hasil; end; g kernel f bitmap Ht Round(m/2); Vt Round(n/2)
Contoh 2Algoritma Function Korelasi function korelasi(x, y, m, n):integer; begin hasil = 0; for l=-(round(n/2)) to round(n/2) do for k=-(round(m/2)) to round(m/2) do hasil = hasil + g[k,l] * f[x+k,y+l]; return hasil; end; g kernel f bitmap
Contoh Implementasi Konvolusi . . . for y = 1 to tinggi do for x = 1 to lebar do hasilBitmap[x,y] = konvolusi(x, y, m, n) . . . • x, y koordinat bitmap yang sedang diproses • m lebar kernel • n tinggi kernel
Contoh 1.aAlgoritma Function Konvolusi(untuk kernel 3 X 3) function konvolusi(x, y):integer; begin hasil = 0; for l=1 to 3 do for k=1 to 3 do hasil = hasil + g[k,l] * f[x-(k-3+1),y-(l-3+1)]; return hasil; end; g kernel f bitmap
Contoh 1.bAlgoritma Function Konvolusi(untuk kernel m X n) function konvolusi(x, y, m, n):integer; begin hasil = 0; for l=1 to n do for k=1 to m do hasil = hasil + g[k,l] * f[x+Ht-(k-m+Ht),y+Vt-(l-n+Vt)]; return hasil; end; g kernel f bitmap Ht Round(m/2); Vt Round(n/2)
Contoh 2Algoritma Function Konvolusi function konvolusi(x, y, m, n):integer; begin hasil = 0; for l=-(round(n/2)) to round(n/2) do for k=-(round(m/2)) to round(m/2) do hasil = hasil + g[k,l] * f[x-k,y-l]; return hasil; end; g kernel f bitmap
Beberapa pendapat mengenai piksel tepi • Hanya dilakukan pada semua piksel yang berjarak tidak kurang dari (n-1)/2 piksel dari tepi citra • Jumlah piksel tetangga yang dilibatkan dalam perhitungan tidak harus lengkap • Menambah baris dan kolom berisi 0 atau konstanta tertentu pada citra • Mereplikasi baris dan kolom
Filter Rata-rata (Filter Spasial Linier) • Sebagai penghalusan (smoothing) • Nilai intensitas setiap pixel diganti dengan rata-rata nilai piksel ybs dengan tetangganya • Mengaburkan (blurring) citra untuk mereduksi noise • Blurring akan menghilangkan detail kecil dari suatu citra sebelum dilakukan ekstraksi objek dan dapat Menghubungkan celah kecil yang memisahkan garis atau kurva • Filter rata-rata pada Filter Linier sama dengan Filter rata-rata pada Filter Non Linier
Filter High Pass (Filter Spasial Linier) • Menahan nilai intensitas yang tinggi dan mengurangi nilai dengan intensitas yang rendah sehingga menghasilkan efek sharpenning • Kernel di rancang untuk menambah kecerahan suatu piksel berdasarkan dari nilai-nilai tetangganya. • Kernel mempunyai perbedaan sel pusat dengan tetangga-tetangganya yang sangat besar, dengan sel pusat adalah yang mempunyai nilai tertingginya. • Kernel FHP biasanya berupa sebuah nilai positif di pusat kernel, dan dikelilingi dengan nilai negatif pada tetangga-tetangganya. • (ref: idlastro.gsfc.nasa.gov/idl_html_help/Filtering_an_Imagea.html)
Low Pass Filtering (Filter Spasial Linier) • Menghasilkan efek blurfing atau smoothing • Filter rata-rata adalah sederhana dari low pass filtering. • Filter Gaussian merupakan salah satu varian dari Low Pass Filtering • Contoh lain dari Low Pass Filter yang menghasilkan efek smoothing yang lebih halus dengan efek blurring yang lebih sedikit adalah:
Filter Gaussian (Filter Spasial Linier) • Nilai intensitas setiap piksel diganti dengan rata-rata dari nilai pembobotan untuk setiap piksel-piksel tetangganya dan piksel itu sendiri. • Filter harus dirancang terlebih dahulu, dengan berdasarkan pada ordo matriks dan nilai standart deviasi ². • Dengan efek kurva yang dihasilkan, maka akan didapat efek smoothing pada citra yang diproses • Semakin besar nilai standart deviasi ², maka semakin halus pula efek yang dihasilkan dari pemfilteran menggunakan Filter yang dihasilkan
Persamaan-persamaan pada Gaussian • Fungsi zero mean Gaussian dua variabel g(x,y)= ℯ-(x²+y²)/(2. ²) Untuk mengisi elemen-elemen pada matriks kernel gaussian • Distribusi diskrit gaussian g(x,y) =c. ℯ-(x²+y²)/(2. ²) nilai c yang dihasilkan dikalikan dengan masing-masing bobot nilai, sehingga menghasilkan matriks filter gaussian. • ℯ Adalah konstanta euler dengan nilai 2.718281828
Merancang Gaussian Filter • Cari g(x,y)/c= ℯ-(x²+y²)/(2. ²), tempatkan pada sebuah matriks m x n • Cari nilai terkecil dari matriks m x n yang didapat • Cari koefesien c dengan cara membagi 1 dengan nilai terkecil g(x,y) • Cari g(x,y) dengan koefesien c yang berhasil didapat • Cari jumlah g(x,y) sebagai pembagi • Masukkan jumlah g(x,y) sebagai pembagi matriks filter yang berhasil didapat.
Contoh Merancang Kernel Gaussian • Misalkan akan dicari matriks kernel 7 x 7, dengan diketahui standart deviasi 2 adalah 3. Maka: • ℯ = 2.718281828 • 2=3 2.2= 2.3 = 6
Filter Gaussian Citra True-Color2=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra Grayscale2=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra True-Color2=3; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra Grayscale2=3; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian2=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7