Anda di halaman 1dari 48

Pengolahan Citra

(TIF05)
5 Filtering
disusun oleh Teady Matius
(teadymatius@yahoo.com,
tmulyana@bundamulia.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)
Area Lokal - Titik yang diproses
dan tetangganya
(x-1, y-1) (x,y-1) (x+1,y-1)
(x-1,y) (x,y) (x+1,y)
(x-1,y+1) (x,y+1) (x+1,y+1)
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) = w
o
.f(x,y) + w
1
.f(x-1,y-1) + w
2
.f(x,y-1) +
w
3
.f(x+1,y-1) + w
4
.f(x+1,y) + w
5
.f(x+1,y+1) +
w
6
.f(x,y+1) + w
7
.f(x-1,y+1) + w
8
.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


Contoh Filter Spasial NonLinier
minimum filtering
Contoh Filter Spasial NonLinier
maximum filtering
Contoh Filter Spasial NonLinier
mid-point filtering
Contoh Filter Spasial NonLinier
median filtering
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).
Matriks Filter g(x,y) 3x3
w
1
w
2

w
3

w
8

w
0

w
4

w
7

w
6

w
5

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

= =
= =
N
l
M
k
l y k x g l k f y x g y x f y x h
1 1
) , ( ). , ( ) , ( ) , ( ) , (
Contoh Kernel Korelasi antara
Bitmap dan kernel
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.a
Algoritma 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.b
Algoritma 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 2
Algoritma 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 Kernel Konvolusi antara
Bitmap dan kernel
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.a
Algoritma 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.b
Algoritma 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 2
Algoritma 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


n y m x
n m
y x g s s s s = 1 , 1 ,
.
1
) , (
(
(
(

=
1 1 1
1 1 1
1 1 1
9
1
) , ( y x g
(
(
(
(
(
(

=
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
25
1
) , ( y x g
Contoh hasil filtering dengan filter
rata-rata
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)
Beberapa Contoh kernel High Pass
Filtering
(
(
(




9 / 1 9 / 1 9 / 1
9 / 1 9 / 8 9 / 1
9 / 1 9 / 1 9 / 1
(
(
(

+

0 4 / 1 0
4 / 1 2 4 / 1
0 4 / 1 0
(
(
(




1 1 1
1 8 1
1 1 1
(
(
(




1 1 1
1 9 1
1 1 1
Contoh High Filtering dengan total
koefesien = 1
Contoh High Filtering dengan total
koefesien = 0
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:

(
(
(

0 8 / 1 0
8 / 1 2 / 1 8 / 1
0 8 / 1 0
Contoh Low Pass Filtering
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
o
.
Dengan efek kurva yang dihasilkan, maka akan
didapat efek smoothing pada citra yang diproses
Semakin besar nilai standart deviasi
o
, maka
semakin halus pula efek yang dihasilkan dari
pemfilteran menggunakan Filter yang dihasilkan
Fungsi Gaussian
Persamaan-persamaan pada
Gaussian
Fungsi zero mean Gaussian dua variabel
g(x,y)=
-(x+y)/(2. o)

Untuk mengisi elemen-elemen pada matriks kernel
gaussian

Distribusi diskrit gaussian
g(x,y) =c.
-(x+y)/(2. o)

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. o)
, 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 o
2
adalah 3.
Maka:
= 2.718281828
o
2
=3 2.o
2
= 2.3 = 6
Filter Gaussian Citra True-Color
o
2
=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra Grayscale
o
2
=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra True-Color
o
2
=3; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian Citra Grayscale
o
2
=3; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7
Filter Gaussian
o
2
=1; a.normal b.kernel 3x3 c.kernel 5x5 d. kernel 7x7