pcd2012 4 Pengolahan Dalam Domain Spasial Dan Restorasi Citra1
pcd2012 4 Pengolahan Dalam Domain Spasial Dan Restorasi Citra1
2
Konsep Domain Spasial
Ada 2 konsep dalam filter spasial linier,
yaitu correlation (korelasi) dan
convolution (konvolusi).
Korelasi adalah proses passing mask
terhadap citra array f seperti yang
digambarkan pada gambar sebelumnya.
Mekanisme konvolusi sama dengan
korelasi, hanya saja w diputar 180o
terlebih dahulu baru kemudian
disampaikan pada citra f
3
Korelasi dan Konvolusi 1 dimensi
4
Korelasi dan Konvolusi 2 dimensi
korelasi filter w(x,y)
sebuah citra f(x,y)
berukuran m x n
dituliskan dengan w(x,y)
f(x,y)
w(x,y) f(x,y) =
a b
w( s, t ) f ( x s, y t )
s at b
w(x,y) f(x,y) =
a b
w( s, t ) f ( x s, y t )
s at b
5
= wTz
Pilihan Penjelasan
Mask 3 x 3
Mode Filter
‘corr’ Filter dilakukan menggunakan korelasi. Nilai
default
‘conv’ Filter dilakukan menggunakan konvolusi
Pilihan Boundary
w1 w2 w3 P Boundary cira input diperluas dengan lapisan
sebuah nilai, P (ditulis tanpa tanda petik). Ini
w4 w5 w6 merupakan nilai default dengan nilai 0.
‘replicate’ Ukuran citra diperluas dengan replikasi nilai
w7 w8 w9 dalam border luarnya.
R = w1z1 + w2z2 + … + w9z9 ‘symmetric’ Ukuran citra diperluas dengan refleksinya
9
= w k zk terhadap border.
k 1
‘circular’ Ukuran citra diperluas dengan menganggap
citra sebagai satu periode fungsi periodik 2-D.
= wTz Pilihan Ukuran
w dan z adalah vektor 9 elemen yang ‘full’ Outputnya adalah ukuran yang sama dengan
dibentuk dari koefisien mask dan citra yang diperluas.
intensitas citra ‘same’ Outputnya adalah ukuran yang sama dengan
input. Ini adalah nilai default.
8
Filter Penghalusan (Smoothing) (2)
Filter rata-rata berukuran 3x3 (bentuk seperti dibawah)
Opsi Boundary: default (0 disemua pad)
0 3 3 2 1 2 3 2
4 2 4 6 2 3 4 2
3 7 3 5 3 4 4 3
2 7 2 4 2 3 3 2
Input: 4x4 image Output: 4x4 image (smoothed)
Gray scale = [0,7] a b
Gray scale = [0,7]
w( s, t ) f ( x s, y t )
g ( x, y ) s at b a b
w( s, t )
s at b
9
Filter Penghalusan (Smoothing) (3)
>> w3=ones(3)/9;
>> w5=ones(5)/25;
>> w9=ones(9)/81;
>> w21=ones(21)/441;
>> w35=ones(35)/1225;
>> g3=imfilter(f,w3);
>> figure, imshow(g3, [ ]);
>> g5=imfilter(f,w5);
>> figure, imshow(g5, [ ]);
>> g9=imfilter(f,w9);
>> figure, imshow(g9, [ ]);
>> g21=imfilter(f,w21);
>> figure, imshow(g21, [ ]);
>> g35=imfilter(f,w35);
>> figure, imshow(g35, [ ]);
10
Filter Penghalusan (Smoothing) (4)
Filter rata-rata berukuran 3x3 (bentuk seperti dibawah)
Opsi Boundary: default (0 disemua pad)
0 3 3 2 1 2 2 2
4 2 4 6 2 3 4 3
3 7 3 5 3 4 4 3
2 7 2 4 2 4 3 2
Input: 4x4 image Output: 4x4 image (smoothed)
Gray scale = [0,7] Gray scale = [0,7]
11
Penghalusan dengan Filter non-
Linear (Order-Statistic)
Order-statistic adalah filter spasial non-linear yang hasilnya
didasarkan pada urutan (rangking) piksel yang mengisi area
citra yang diapit filter dan kemudian mengganti nilai dari
pusat piksel dengan nilai yang ditentukan oleh hasil
perangkingan.
Filter yang paling dikenal: median filter.
◦ Filter median mengganti nilai piksel dengan median dari nilai
intensitas dalam tetangga dari piksel tersebut (nilai asli dari piksel
tersebut termasuk dalam perhitungan median)
◦ Baik untuk menghilangkan salt-and-pepper noise karena sifat
Toolbox fungsi ordfilt2
median yang menjauhi hitam dan putih.
0 3 3 2 0 2 2 0 menghasilkan order-statistic
filters.
4 2 4 6 2 3 3 3 g = ordfilt2(f, order,
domain)
3 7 3 5 1 1 1 2 3 4 3 order adalah nilai ke-x hasil
Filter pengurutan tetangga yang
2 7 2 4 median 1 1 1
0 2 3 0 ditentukan oleh bukan nol dalam
1 1 1 domain.
Citra asli 3x3 median filter
12
Penghalusan dengan Filter non-
Linear (Order-Statistic) (2)
Filter lain yang diberikan oleh statistik dasar. Jika
menggunakan nilai terbesar urutan maka akan menjadi max
filter:
◦ Berguna untuk mencari titik-titik yang paling terang dalam citra.
◦ Hasil dari filter max 3 x 3 diberikan oleh R = max{zk|k = 1, 2, …, 9}.
Filter order-statistic dengan mengambil nilai terkecil disebut
min filter :
◦ Digunakan untuk tujuan mencari titik-titik yang paling gelap
◦ Hasil dari filter min 3 x 3 diberikan oleh R = min{zk|k = 1, 2, …, 9}.
0 0 0 0 0 3 3 2 4 4 6 6
0 0 2 0 4 2 4 6 7 7 7 6
0 2 2 0 3 7 3 5 7 7 7 6
0 0 0 0 2 7 2 4 7 7 7 5
min filter Citra asli max filter 13
Penghalusan dengan Filter non-
Linear (Order-Statistic) (3)
Toolbox
filter spasial non-linear adalah fungsi ordfilt2 yang
menghasilkan order-statistic filters.
◦ g = ordfilt2(f, order, domain)
◦ order adalah nilai ke-x hasil pengurutan tetangga yang ditentukan oleh
bukan nol dalam domain.
Untuk filter median:
◦ g = ordfilt2(f, median(1:m*n), ones(m, n))
◦ g = medfilt2(f, [m n], padopt)
[m n] mendefinisikan tetangga ukuran m x n di mana median dihitung,
padopt menetapkan satu dari tiga pilihan border-padding: ‘zeros’ (default), ‘symmetric’
di mana f diperluas secara simetris dengan mirror-reflecting pada bordernya, dan
‘indexed’ di mana f dilapisi dengan satu jika menggunakan class double dan 0 jika
yang lain
Untuk filter max:
◦ g = ordfilt2(f, m*n, ones(m, n))
Untuk filter min:
◦ g = ordfilt2(f, 1, ones(m, n))
14
Penghalusan dengan Filter non-
Linear (Order-Statistic) (4)
>> f = imread('anak.tif');
>> fb = imnoise(f,'salt & pepper', 0.2);
>> gm = medfilt2(fb);
>> gm2 = medfilt2(fb,[5 5]);
>> gm3 = medfilt2(fb,[7 7]);
dan :
f
2
f ( x, y 1) f ( x, y 1) 2 f ( x, y )
y 2
Jika2
digabung dalam 2f(x,y) menjadi:
f f ( x 1, y ) f ( x 1, y ) f ( x, y 1) f ( x, y 1) 4 f ( x, y )
Pernyataan ini diimplementasikan pada semua titik (x,y) dalam citra
dengan mengisikan konstanta suku sebagai nilai filter mask sesuai
dengan letak yang ditunjukkan oleh sukunya
17
Filter khusus dalam matlab: fspecial()
1 1 1 1 -2 -1 -1 -2
1 1 1 1 -1 0 5 4
1 1 6 6 -1 10 -10 -12
1 6 6 5 3 -16 -7 -8
w = fspecial(‘type’, parameter)
di mana ‘type’ adalah jenis filter yang digunakan,
sedangkan parameter mendefinisikan filter tetapannya
>> w=fspecial('laplacian',0)
w =
0 1 0
1 -4 1
0 1 0
>> w=[0 1 0; 1 -4 1; 0 1 0];
>> g=imfilter(f,w); 18
Filter spasial yang didukung oleh fspecial
Type Syntax dan Parameter
‘average’ fspecial(‘average’, [r c]). Filter rata-rata persegi panjang dari ukuran r x c, default-nya 3x 3, satu
angka menunjukkan [r c] menetapkan filter bujur sangkar
‘disk’ fspecial (‘disk’, r). Filter rata-rata circual (dengan bujur sangkar ukuran 2r+1) dengan radius r,
default radius adalah 5.
‘gaussian’ fspecial (‘gaussian’, [r c], sig). Filter lowpass Gaussian dengan ukuran r x c dan standard deviasi
sig positif. Defaultnya 3 x 3 dan 0.5, satu angka dari [r c] menunjukkan filter bujur sangkar.
‘laplacian’ fspecial (‘laplacian’, alpha). Filter Laplacian 3 x 3 yang bentuknya ditentukan alpha, angka pada
range [0, 1], nilai default alpha adalah 0.5
‘log’ fspecial (‘log’, [r c]). Laplacian dari filter Gaussian (LoG) berukuran r x c dan standard deviasi sig
positif. Nilai default 5 x 5 dan 0.5, satu angka menunjukkan [r c] menetapkan filter bujur sangkar.
‘motion’ fspecial (‘motion’, len, theta). Output sebuah filter, ketika digunakan dengan sebuah citra,
memperkirakan motion linear len piksel. Arah motion adalah theta, diukur dengan sudut horizontal.
Defaultnya 9 dan 0 yang merepresentasikan motion 9 piksel dengan arah horizontal.
‘prewitt’ fspecial (‘prewitt’). Output mask Prewitt 3 x 3, wv, yang memperkirakan sebuah gradien vertikal.
Mask untuk gradien horizontal didapatkan dengan mentranspose hasil wh = wv’
‘sobel’ fspecial (‘sobel’). Output mask Sobel 3 x 3, sv, yang memperkirakan sebuah gradien vertikal. Mask
untuk gradien horizontal didapatkan dengan mentranspose hasil sh = sv’
‘unsharp’ fspecial (‘unsharp’, alpha). Output filter unsharp 3 x 3. Parameter alpha mengontrol bentuk; nilainya
harus lebih besar dari 0 dan lebih kecil atau sama dengan 1.0, defaultnya 0.2
19
Filter Penajaman: Laplacian (2)
>> w1 = [0 1 0; 1 -4 1; 0 1 0];
>> w2 = [1 1 1; 1 -8 1; 1 1 1];
>> f = imread('srikaya.tif');
>> f2 = im2double(f);
>> g4 = imfilter(f2,w1,'replicate');
>> g4 = f2 - g4;
>> g8 = imfilter(f2,w2,'replicate');
>> g8 = f2 - g8; Citra asli
Hasil penajaman 20
Filter Gradien
Turunan pertama pengolahan citra digital
diimplementasikan jarak (panjang) gradien.
Untuk fungsi f(x,y), gradien f pada koordinat (x,y)
didefiniskan sebagai vektor kolom 2-dimensi:
2 2
M ( x, y ) mag (f ) ( g x g y )1/ 2
21
Filter Gradien: Robert dan Sobel
Dua definisi lain yang diusulkan oleh Robert[1965]:
◦ gx = (z9 – z5) dan gy = (z8 – z6)
Jikamenggunakan formula M(x,y), gx dan gy, maka untuk menghitung citra
gradien dengan:
◦ M(x,y) = [(z9 – z5)2 + (z8 – z6)2]1/2
Formula yang lain:
◦ M(x,y) |z9 – z5| + |z8 – z6|
Perkiraan nilai gx dan gy menggunakan tetangga 3 x 3 yang terpusat di z 5 sbb:
df
gx ( z7 2 z8 z9 ) ( z1 2 z2 z3 )
dx
◦ Dan df
gy ( z3 2 z6 z9 ) ( z1 2 z4 z7 )
dy
◦ Sehingga:
M(x,y) = |(z7 + 2z8 + z9) – (z1 + 2z2 + z3| + |(z3 + 2z6 + z9) – (z1 + 2z4 + z7)|
22
Filter Gradien: Sobel
0 3 3 2 10 12 16 16
4 2 4 6 10 11 7 6
3 7 3 5 1 6 -1 -6
18 18 18 6
2 7 2 4 -13 -20 -18 -13
gx
24 14 12 -8
8 6 2 -10 24 6 -4 -18
0 3 3 2
14 3 5 -14 8 -20 -26 -20
4 2 4 6
23 0 -3 -12 g = gx + gy
3 7 3 5
2 7 2 4 21 0 -8 -7
gy
23
Filter Gradien: Sobel (2)
Gradien gx dan gy
Citra asli
>> f = imread('lensa_kontak.png');
>> wh = [-1 -2 -1; 0 0 0; 1 2 1];
>> wv = [-1 0 1; -2 0 2; -1 0 1];
>> gx = imfilter(f,wh);
>> figure, imshow(gx, [ ]);
>> gy = imfilter(f,wv);
>> figure, imshow(gy, [ ]);
>> g = gx + gy;
>> figure, imshow(g, [ ]);
Gradien gx Gradien gy
24
Degradasi dan Restorasi Citra
Proses degradasi dimodelkan sebagai sebuah fungsi degradasi yang
digabungkan dengan syarat additive noise
◦ Mengoperasikan citra input f(x,y) untuk menghasilkan citra terdegradasi g(x,y).
Jika ada g(x,y), fungsi degradasi H dan syarat additive noise (x,y), obyektif
dari restorasi adalah untuk mendapatkan perkiraan f’(x,y) dari citra original.
Diinginkan memperkirakan kemungkinan yang semirip mungkin terhadap
citra input original.
Citra terdegradasi dalam domain spasial:
◦ g(x,y) = h(x,y) f(x,y) + (x,y)
◦ di mana h(x,y) adalah representasi spasial dari fungsi degradasi, simbol “” adalah
konvolusi.
Dalam domain spasial, konvolusi dianalogikan dengan perkalian dalam
domain frekuensi, sehingga formula di atas dapat dituliskan dalam domain
frekuensi dengan bentuk:
◦ G(u,v) = H(u,v)F(u,v) + N(u,v) g(x,y)
Fungsi Filter
degradasi restorasi (s)
f(x,y) + f’(x,y)
H
Noise
(x,y)
DEGRADASI RESTORASI
25
Model Noise
Sumber noise bisa terjadi sejak pengambilan dan atau transmisi citra.
Kinerja dari sensor citra dipengaruhi oleh banyak faktor seperti kondisi
lingkungan selama pengambilan citra dan oleh kualitas sensitivitas
elemen itu sendiri.
◦ Contoh, dalam pengambilan citra dengan kamera CCD, level pencahayaan dan
suhu sensor adalah faktor utama yang memengaruhi tingkat noise pada citra
yang dihasilkan.
Citra yang terkorupsi selama transmisi secara prinsip disebabkan
interferensi channel yang digunakan untuk transmisi.
◦ Misalnya, citra yang ditransmisikan menggunakan jaringan wireless dapat
terkorupsi sebagai hasil dari pencahayaan atau pengaruh atmosfer yang lain
Gaussian Noise
◦ PDF (probability
1 density2 function)
2
variabel random Gaussian z
p( z ) e ( z z ) / 2
2
26
Model Noise (2)
Rayleigh Noise
◦ PDF noise Rayleigh diberikan oleh:
2 2
( z a )e ( z a ) /b
untuk z a
p( z ) b
0 untuk z a
◦ Rata-rata dan varian diberikan oleh formula:
z a b / 4
◦ Dan b( 4 )
2
4
Erlang (gamma) noise
az
b b 1
◦ PDF noise Erlang diberikan oleh: e az untuk z 0
p ( z ) (b 1)!
0 untuk z 0
◦ di mana parameter a > 0, b integer positif dan “!” mengindikasikan faktorial. Rata-
rata dan varian dari kepadatan ini diberikan oleh:
b
z
a
◦ Dan b
2
a2
27
Model Noise (3)
Exponential Noise
ae untuk z 0
az
◦ di mana a > 10. Rata-rata dan varian dari kepadatan ini adalah:
z 1
a 2
a2
◦ dan 1
Uniform Noise jika a z b
p( z ) b a
◦ PDF uniform noise diberikan oleh: 0 lainnya
ab
◦ Rata-rataz dan
varian dari kepadatan ini adalah:
2 (b a ) 2
2
12
◦ Dan
Pa untuk z a
Impuls p ( z ) Pb untuk z b
(Salt-and-Pepper Noise)
0 lainnya
28
Model Noise (4)
29
Ilustrasi noise
4
x 10
4
0
0 50 100 150 200 250
30
Teknik Restorasi : Mean Filter
Arithmetic Mean Filter 1
f ( x, y ) g ( s, t )
S
◦ xy adalah window mask mn )S
( s , t xy
( s ,t )S
xy
Geometric mean filter
◦ Perkalian piksel dalam window sub-image, yang dipangkatkan
dengan 1/mn.
◦ Menghasilkan citra yang lebih halus dibanding arithmetic mean filter
mn
tetapi tetap menghilangkan sedikit detail citra dalam
f ( xprosesnya
, y)
1
( s ,t )S g ( s, t )
xy
31
Teknik Restorasi: Mean Filter (2)
Contraharmonic Mean Filter g ( s, t )
Q 1
( s ,t )S
f ( x, y ) xy
g ( s, t )
Q
( s ,t )S xy
32
Restorasi dengan aritmetik dan
geometrik mean filter
>> g =
imnoise(f,'gaussian');
>> figure, imshow(g);
33
Restorasi dengan filter:
contraharmonic, max dan min
Pndegradasian citra
dengan noise
>> [M, N] = size(f);
>> R = imnoise2('salt &
pepper', M, N, 0.1, 0);
>> c = find(R == 0);
>> gpep = f;
>> gpep(c) = 0;
>> R = imnoise2('salt &
pepper', M, N, 0, 0.1);
>> c = find(R == 1); Citra terkorupsi dengan Citra terkorupsi dengan
>> gsal = f; pepper noise salt noise
>> gsal(c) = 255;
>> figure, imshow(gpep);
>> figure, imshow(gsal);
34
Contraharmonic dan max
Citra terkorupsi dengan Hasil filter contraharmonic Hasil filter max ukuran 3x3
pepper noise ukuran 3x3 dengan order 1.5
35
Contraharmonic dan min
Citra terkorupsi dengan Hasil filter contraharmonic Hasil filter min ukuran 3x3
salt noise ukuran 3x3 dengan order -1.5
36
Teknik Restorasi: Order-statistik
Filter spasial yang hasilnya didasarkan dari pengurutan
(perangkingan) nilai piksel yang merupakan isi daerah
citra yang diterapkan oleh filter.
Hasil rangking menentukan hasil filter.
Filter median f ( x, y ) median{g ( s, t )}
( s ,t )S xy
37
Teknik Restorasi: Order-statistik (2)
Filter max
◦ Sangat berguna untuk mencari titik-titik yang paling terang
dalam citra.
◦ Pepper noise dapat dikurangi oleh filter ini sebagai hasil
proses pemilihan max dalam sub-image Sxy.
f ( x, y ) (max
s ,t )S
{g ( s, t )}
xy
Filter min
◦ Sangat berguna untuk mencari titik-titik paling gelap dalam
f ( x, y ) salt
citra, dan mengurangi minnoise
{g ( s, t )}
sebagai hasil operasi min
( s ,t )S xy
Filter midpoint
◦ Menghitung titik tengah antara nilai maksimum dan minimum
dalam
daerah
1
f ( x, y ) 2 max{g (s, t )} min {g (s, t )}
yang diliputi oleh filter
( s ,t )S xy ( s ,t )S xy
38
Teknik Restorasi: Order-statistik (3) – Alpha
Trimmed
Andaikan bahwa akan menghapus d/2 nilai intensitas terendah dan d/2 nilai
intensitas tertinggi dari g(x,y) dalam tetangga Sxy. Jika gr(s,t) mereprsentasikan
sisa mn – d piksel, Filter dibentuk oleh rata-rata sisa piksel ini yang disebut
alpha-trimmed mean filter. 1
f ( x, y ) g r ( s, t )
Di mana nilai d dalam range [0, mn – 1]. mn d ( s ,t )S xy
Ketika d=0, alpha-trimmed mendekati arithmetic mean filter. Jika d =mn-1, filter
ini menjadi filter median.
Untuk nilai d yang lain, filter ini sangat berguna dalam situasi yang menyertakan
beberapa jenis noise, seperti kombinasi noise salt-and-pepper dengan Gausian
Citra terkorupsi dengan
pepper noise
>> g = imnoise(f,'gaussian');
>> fgau = spfilt(g,'midpoint',
3, 3);
>> figure, imshow(fgau);
>> fatr = spfilt(g,'atrimmed',
3, 3, 2);
>> figure, imshow(fatr);
ANY QUESTION ?
40