10/11/2014
CIG4E3 / Pengolahan Citra Digital BAB 5. Image Enhancement (Equalisasi & Spesifikasi histogram)
Dua Pendekatan Image Enhancement Metode-metode berbasis domain frekwensi
– Manipulasi terhadap representasi frekwensi dari citra – Contoh: operasi berbasis transformasi Fourier terhadap citra
Intelligent Computing and Multimedia (ICM)
Metode-metode berbasis domain spasial
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
Histogram citra
2
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
1
12-CRS-0106 REVISED 8 FEB 2013
– Manipulasi langsung terhadap pixel-pixel pada citra – Contoh: operasi histogram
Contoh histogram
Berlaku untuk nilai gray level; RGB per plane warna Plotting dari persamaan:
0 rk 1;
k 0,1,..., L 1
–L: jumlah level –pr(rk): probabilitas kemunculan level ke-k –nk: jumlah kemunculan level k pada citra –n: total jumlah pixel dalam citra
3
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
4
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
nk ; n
12-CRS-0106 REVISED 8 FEB 2013
pr (rk )
Equalisasi histogram
5
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
EQUALISASI HISTOGRAM
6
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
Tujuan: melakukan transformasi terhadap histogram citra asli sedemikian sehingga didapat histogram citra hasil dengan distribusi lebih seragam (uniform) ≈ linearisasi Dasar konsep: transformasi probability density function menjadi uniform density bentuk kontinyu Agar dapat dimanfaatkan dalam pengolahan citra digital, diubah ke bentuk diskrit
1
10/11/2014
Ilustrasi equalisasi pada domain kontinyu
Equalisasi pada domain kontinyu dr Histogram : p s ( s ) pr ( r ) ds r T 1 ( s )
pr(r)
s=T(r)
2
r
s T ( s ) pr ( w)dw ;
Transformasi :
0.8
0 r 1
0.6 1
0.5
0
0.4
Uniform :
0.2
Bentuk diskrit fungsi transformasi
sk T (rk ) j 0
rk T 1 ( sk )
9
nj n
k
pr ( r j ) j 0
k 0,1,..., L 1
C IG4E3 / P engolahan C itra D igital
Transformation function
1.0
Resulting uniform density
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
Citra 64x64 pixel, 8 tingkat keabuan dgn distribusi:
0 rk 1
rk
nk
r0=0
0 sk 1
1 0 /11/2014
8
0.5
Contoh
12-CRS-0106 REVISED 8 FEB 2013
k
Original probability density function
s 0
0.2 0.4 0.6 0.8 1.0
12-CRS-0106 REVISED 8 FEB 2013
C IG4E3 / P engolahan C itra D igital
2
Fungsi transformasi
0,3 0,25
790
0,19
r1=1/7
1023
0,25
r2=2/7
850
0,21
r3=3/7
656
0,16
r4=4/7
329
0,08
r5=5/7
245
0,06
r6=6/7
122
0,03
81
0,02
r7=1 10
Histogram citra:
pr(rk)=nk/n
0,2 0,15 0,1 0,05 0 0
1/7
2/7
3/7
4/7
5/7
6/7
gray level (rk) C IG4E3 / P engolahan C itra D igital
1 0 /11/2014
1
12-CRS-0106 REVISED 8 FEB 2013
0 s 1
r 0
1
probability (p r (rk))
1 0 /11/2014
r 0
12-CRS-0106 REVISED 8 FEB 2013
1 p s ( s ) pr ( r ) 1r T 1 ( s ) 1 pr (r ) r T 1 ( s ) 7
ps(s) 1.0
1.0
Fungsi transformasi: grafik
0
s0 T (r0 ) pr (rj ) pr (r0 ) 0.19
1,2
j 0
transformed value (s k)
1
s1 T (r1 ) pr (rj ) pr (r0 ) pr (r1 ) 0.44 j 0 2
s2 T (r2 ) pr (rj ) pr (r0 ) pr (r1 ) pr (r2 ) 0.65 j 0
5
s5 T (r5 ) pr (rj ) 0.95; j 0
j 0 6
s6 T (r6 ) pr (rj ) 0.98 j 0
7
s7 T (r7 ) pr (rj ) 1.00 11
1 0 /11/2014
j 0
C IG4E3 / P engolahan C itra D igital
0,6 0,4 0,2 0 0
1/7
2/7
3/7
4/7
5/7
6/7
1
gray level (rk)
12
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
j 0
4
s4 T (r4 ) pr (rj ) 0.89 12-CRS-0106 REVISED 8 FEB 2013
3
s3 T (r3 ) pr (rj ) 0.81;
1 0,8
2
10/11/2014
Pembulatan
Pemetaan
Histogram dengan distribusi seragam
14
1 0 /11/2014
Tabel Histogram secara Lengkap Citra 64x64 pixel, 8 tingkat keabuan dgn distribusi:
Karena histogram merupakan aproksimasi terhadap probability density function, sangat jarang didapat histogram hasil yang betul-betul rata
rk
pr(rk)=nk/n
Sk
Sk x 7
790
0,19
0,19
1,33 1
s 0=1/7
r1=1/7
1023
0,25
0,44
3,08 3
s 1=3/7
r2=2/7
850
0,21
0,65
4,55 5
s 2=5/7
r3=3/7
656
0,16
0,81
5,67 6
s 3=6/7
r4=4/7
329
0,08
0,89
6,23 6
s 4=6/7
r5=5/7
245
0,06
0,95
6,65 7
s 5=7/7
r6=6/7
122
0,03
0,98
6,86 7
s 6=7/7
81
0,02
1,00
7
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
r0=0
15
17
Buat histogram dari citra asli Transformasikan histogram citra asli menjadi histogram dengan distribusi seragam Ubah nilai tiap pixel sesuai dengan nilai hasil pemetaan (histogram asli uniform histogram)
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
3.
r7=1 16
1 0 /11/2014
nk
Normal(Sk)
s 7=1 C IG4E3 / P engolahan C itra D igital
Algoritma: citra 512 x 512 pixel 256 graylevel
Operasi equalisasi histogram
1. 2.
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
C IG4E3 / P engolahan C itra D igital
(790 pixel) s0 = 1/7 (1023 pixel) s1 = 3/7 (850 pixel) s2 = 5/7 (656 pixel), r4 (329 pixel) s3 = 6/7 (245 pixel),r6 (122 pixel),r7 (81 pixel) s4 = 7/7
12-CRS-0106 REVISED 8 FEB 2013
1 0 /11/2014
–r0 –r1 –r2 –r3 –r5
Var x,y,i,j : integer; HistEq : array[0..255] of integer; Hist : array[0..255] of real; Sum : real; Begin Histogram(image,Hist) {bentuk histogram dari citra asli} for i:= to 255 do {transformasi ke uniform histogram} sum := 0.0 for j:= to i do sum:= sum + hist[j] endfor histEq[i]:=round(255 * sum); end; for y:=0 to 511 do {ubah nilai tiap pixel pada citra} for x:=0 to 511 do image[x,y]:= HistEq[Image[x,y]]; end; end; end;
18
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
13
Hanya ada 5 level keabuan pada uniform histogram
12-CRS-0106 REVISED 8 FEB 2013
8 tingkat keabuan valid nilai sk dibulatkan ke nilai valid terdekat s0 = 0.19 1/7 s1 = 0.44 3/7 s2 = 0.65 5/7 s3 = 0.81 6/7 s4 = 0.89 6/7 s5 = 0.95 1 s6 = 0.98 1 s7 = 1.00 1
3
10/11/2014
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
20
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
19
Contoh2 equalisasi histogram
12-CRS-0106 REVISED 8 FEB 2013
Contoh1 equalisasi histogram
Spesifikasi histogram Kelemahan equalisasi histogram: histogram hasil tidak bisa dibentuk sesuai kebutuhan Kadangkala dibutuhkan untuk lebih menonjolkan rentang gray level tertentu pada citra spesifikasi histogram
Bentuk diskrit spesifikasi histogram: by example pr(rk)=nk/n
790
0,19
r1=1/7
1023
0,25
r2=2/7
850
0,21
r3=3/7
656
0,16
r4=4/7
329
0,08
r5=5/7
245
0,06
r6=6/7
122
0,03
r273=11 0 /11/2014 81
0,02
Bentuk histogram yang diinginkan zk
Histogram citra:
z 0=0
0,00
z 1=1/7
0,00
0,2
z 2=2/7
0,00
0,15
z 3=3/7
0,15
0,1
z 4=4/7
0,20
0,05
z 5=5/7
0,30
z 6=6/7
0,20
z 7=1
0,15
0 0
1/7
2/7
3/7
4/7
5/7
6/7
gray level (rk)
C IG4E3 / P engolahan C itra D igital
1
24
1 0 /11/2014
0,35
pz (zk)
0,25
12-CRS-0106 REVISED 8 FEB 2013
r0=0
nk
probability (p r (rk))
rk
C IG4E3 / P engolahan C itra D igital
1 0 /11/2014
0,30 0,25 0,20 0,15 0,10 0,05 0,00 0
1/7
2/7
3/7
4/7
5/7
6/7
1
gray level (z k)
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
Citra 64x64 pixel, 8 tingkat keabuan dgn distribusi: 0,3
22
12-CRS-0106 REVISED 8 FEB 2013
C IG4E3 / P engolahan C itra D igital
1 0 /11/2014
probability (p z (z k))
21
12-CRS-0106 REVISED 8 FEB 2013
SPESIFIKASI HISTOGRAM
4
10/11/2014
Langkah 1: equalisasi histogram
Langkah 2: kcari fungsi transformasi
vk G ( zk ) p z ( z j )
Didapat hasil: 0,3 0,25
790
0,19
r1 s1 =3/7 1023
0,25
r2 s2 =5/7
850
0,21
r3 ,r4 s3 =6/7
985
0,24
r5 ,r6 ,r7 s4 =7/7
448
0,11
j 0
v0 v1 v2 v3 v4 v5 v6 v7
0,2 0,15 0,1 0,05
1/7
2/7
3/7
4/7
5/7
6/7
gray level (sk)
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
rk
nk
pr(rk)=nk/n
Sk
Sk x 7
790
0,19
0,19
1,33 1
s 0=1/7
r1=1/7
1023
0,25
0,44
3,08 3
s 1=3/7
r2=2/7
850
0,21
0,65
4,55 5
s 2=5/7
r3=3/7
656
0,16
0,81
5,67 6
s 3=6/7
r4=4/7
329
0,08
0,89
6,23 6
s 4=6/7
r5=5/7
245
0,06
0,95
6,65 7
s 5=7/7
r6=6/7
122
0,03
0,98
6,86 7
81
0,02
1,00
7
r0=0
r7=1
27
pz(z k )
Vk
Vk x 7
z 0 =0
zk
0,00
0,00
0,00
v0 =0
z 1 =1/7
0,00
0,00
0,00
v1 =0
z 2 =2/7
0,00
0,00
0,00
v2 =0
z 3 =3/7
0,15
0,15
1,05 1
v3 =1/7
s 6=7/7
z 4 =4/7
0,20
0,35
2,45 2
v4 =2/7
s 7=1
z 5 =5/7
0,30
0,65
4,45 4
v5 =4/7
z 6 =6/7
0,20
0,85
5.95 6
v6 =6/7
z 7 =1
0,15
1,00
7
28
1 0 /11/2014
Normal(Vk )
v7 =1 C IG4E3 / P engolahan C itra D igital
Langkah 3: terapkan inverse G pada level histogram equalisasi Pemetaan nilai sk ke G(zk) terdekat s0 = 1/7 ≈ 0.14 G(z3) = 0.15; z3 = 3/7 s1 = 3/7 ≈ 0.43 G(z4) = 0.35; z4 = 4/7 s2 = 5/7 ≈ 0.71 G(z5) = 0.65; z5 = 5/7 s3 = 6/7 ≈ 0.86 G(z6) = 0.85; z6 = 6/7 s4 = 1 G(z7) = 1.00; z7 = 1
1,2 1 0,8 0,6 0,4 0,2 0 0
1/7
2/7
3/7
4/7
5/7
6/7
1
gray level (z k) C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
transformation (v k)
C IG4E3 / P engolahan C itra D igital
Dengan kata lain, lakukan langkah-langkah equalisasi thd histogram yang diinginkan :
Grafik fungsi transformasi
29
1 0 /11/2014
Langkah 2: cari fungsi transformasi
Normal(Sk)
C IG4E3 / P engolahan C itra D igital
1 0 /11/2014
26
G(z0) = 0,00 G(z1) = 0,00 G(z2) = 0,00 G(z3) = 0,15 G(z4) = 0,35 G(z5) = 0,65 G(z6) = 0,85 G(z7) = 1,00
30
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
25
1
12-CRS-0106 REVISED 8 FEB 2013
0
12-CRS-0106 REVISED 8 FEB 2013
0
= = = = = = = =
12-CRS-0106 REVISED 8 FEB 2013
r0 s0 =1/7
ps(s k )
12-CRS-0106 REVISED 8 FEB 2013
nk
probability (p s(sk))
rjs k
5
10/11/2014
Langkah 4: pemetaan dari rk ke zk
4.
33
Buat histogram dari citra asli Transformasikan histogram citra asli menjadi histogram dengan distribusi seragam Tentukan fungsi trasformasi sesuai spesifikasi histogram yang diinginkan Ubah nilai tiap pixel sesuai dengan nilai hasil pemetaan (histogram asli histogram equalisasi histogram hasil)
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
3.
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
0,25
r1=1/7
0
0
r2=2/7
0
0
r3=3/7
790
0,19
r4=4/7
1023
0,25
r5=5/7
850
0,21
r6=6/7
985
0,24
r7=1
448
0,11
1 0 /11/2014
0,20 0,15 0,10 0,05 0,00 0
1/7
2/7
3/7
4/7
5/7
6/7
gray level (z k) C IG4E3 / P engolahan C itra D igital
1
Var x,y,i,minval,minj,j : integer; Histspec : array[0..255] of integer; Invhist : array[0..255] of integer; Sum : real; Begin Hist_Equalization(Image) {equalisasi histogram} For i:= 0 to 255 do {histogram yang dispesifikasikan telah disimpan di spec} Sum:= 0.0; For j:= 0 to i do Sum := sum + spec[j] Histspec [i] = round(255 * sum) Endfor {didapat fungsi transformasi} for i:= 0 to 255 do {pemetaan histogram} minval := abs(i – histspec[0]; minj := 0; for j:= 0 to 255 do if abs(i – histspec [j]) < minval then minval := abs(i – histspec [j]) minj := j endif invhist[i]:= minj endfor endfor for y:= 0 to 511 do {ubah nilai tiap pixel pada citra} for x:= 0 to 511 do image[x,y] = invhist[image(x,y)]
34
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
Contoh 2 spesifikasi histogram
12-CRS-0106 REVISED 8 FEB 2013
Contoh 1 spesifikasi histogram
35
0
Algoritma: citra 512 x 512 pixel 256 graylevel
Operasi spesifikasi histogram
1. 2.
0,30
0
32
nk
probability (p z (z k))
zk
12-CRS-0106 REVISED 8 FEB 2013
C IG4E3 / P engolahan C itra D igital
pz (zk)=nk/n
r0=0
12-CRS-0106 REVISED 8 FEB 2013
1 0 /11/2014
Histogram hasil mungkin tidak sama persis dengan spesifikasinya transformasi hanya akan memberikan hasil yang persis pada kasus kontinyu
36
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
31
Histogram hasil
12-CRS-0106 REVISED 8 FEB 2013
Dengan memperhatikan pemetaan histogram asli ke histogram equalisasi r0 = 0 z3 = 3/7 r1 = 1/7 z4 = 4/7 r2 = 2/7 z5 = 5/7 r3 = 3/7 z6 = 6/7 r4 = 4/7 z6 = 6/7 r5 = 5/7 z7 = 1 r6 = 6/7 z7 = 1 r7 = 1 z7 = 1
6
10/11/2014
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
37
38
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
Contoh cara menspesifikasikan histogram
Contoh 3 spesifikasi histogram
Local enhancement Metode equalisasi dan spesifikasi histogram yg telah dibahas bersifat global (operasi terhadap semua pixel dalam citra) Kadang diperlukan enhancement hanya untuk suatu area tertentu dalam citra
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
THANK YOU 40
1 0 /11/2014
C IG4E3 / P engolahan C itra D igital
12-CRS-0106 REVISED 8 FEB 2013
39
12-CRS-0106 REVISED 8 FEB 2013
– Adaptasi metode global (equalisasi atau spesifikasi) untuk area N x M pixel
7