TEKNIK HISTOGRAM
Image dengan isi graylevel mudah dimanipulasi untuk
memperbaiki interpretasi visualnya. Perbaikan dapat
dilakukan dengan mudah baik pada algoritma penskalaan,
histogram equalitation hingga algoritma spesifikasi.
Dengan teknik histogram, isi graylevel dari citra
digambarkan sebagai sekumpulan bilangan random untuk
memodifikasi histogram dari citra.
Ada dua teknik histogram yang biasa digunakan :
1. Histogram Equalitation
Nilai graylevel dari tiap pixel disebar secara merata
sedemikian rupa sehingga jumlah pixel pada suatu
graylevel tertentu hampir sama seperti pada semua
graylevel lain dalam citra.
2. Histogram Spesification
Histogram dari citra yang sudah ada dimodifikasi untuk
mendapatkan histogram yang baru. Dengan cara ini pixel
dengan graylevel yang gelap dapat dilihat lebih terang,
dan yang lebih terang dapat digelapkan.
Operasi ini dapat dilakukan pada seluruh citra, atau
hanya wilayah tertentu dari citra.
PERHITUNGAN HISTOGRAM
Image Processing - 24
Histogram sebenarnya adalah sekumpulan bilangan yang
menjelaskan persentase pixel dalam citra yang memiliki
nilai graylevel tertentu.
Sebagai contoh, akan digunakan citra yang berisi 256
graylevel dengan range 0 – 255. Untuk setiap nilai dapat
diwakili oleh bilangan integer 8 bit,Gi, dengan i adalah
index yang menyatakan graylevel ke-i.
Misalnya G100 sama dengan nilai 200.
Misalnya ada citra dengan nt total pixel dalam citra.
Anggap ni adalah jumlah pixel dalam citra yang memiliki
graylevel ke-i atau Gi.
Histogram dari citra dapat didefinisikan sebagai sekumpulan
M bilangan )pada kasus ini, karena ada 256 nilai graylevel
maka M = 256), yang dapat dibetuk sebagai berikut :
Hi = ni nt untuk i = s/d M-1dengan M adalah jumlah total nilai graylevel dalam citra.
Sebagai contoh citra 128 x 128 x 8 graylevel dengan
distribusi pixel (ni) :
Graylevel ni hi0 1024 0.06271 3544 0.21632 5023 0.30663 3201 0.19544 1867 0.11395 734 0.04486 604 0.03697 383 0.0234t 16384
Image Processing - 25
Dari histogram tersebut ada beberapa point penting :
hi memberikan nilai porbability dari pixel Pr (Gi), pada
citra dengan graylevel ke-i
Jumlah total komponen-komponen = 1 M-1 hi = 1i = 0
Probabilitas dari suatu pixel yang memiliki nilai
graylevel kurang atau sama dengan nilai graylevel ke-j
adalah jumlah hi dengan i antara 0 s/d j.M-1
Pr (Gi <= Gj) = hi , 0 i = 0
Informasi tentang citra dapat diambil dari histogram,
misalnya :
Suatu puncak dalam histogram yang menandai adanya
brightness pada suatu citra yang menonjol.
Kelebaran dari suatu puncak menandai contrast dari
citra.
Image Processing - 26
Contoh :a. 1 b. 1
0 255 0 255 citra gelap citra terang
c. 1 d. 1
0 255 0 255normal brightness normal brightness dan highcontrast
imagea,b,c : low contrast image
Algoritma Perhitungan Histogram
Disisipkan array yang ukurannya sama dengan jumlah
graylevel, dengan elemen diinisialisasi dengan .
Citra lalu discan pixel demi pixel dan setiap kali nilai
graylevelnya digunakan sebagai index array, lalu isinya
dinaikkan 1.
Lalu untuk menghitung hi, nilai tiap array dibagi dengan
jumlah total pixel.
Sebagai contoh, akan dibuat histogram dari citra 128 x
128 dengan 256 graylevel (0 s/d 255). Asumsi citra telah
tersimpan pada suatu array IMAGE (: array[0..127,0..127]
of integer)
Var total, x, y, i, G : integer;Ihist : array[0..255] of integer;
Image Processing - 27
BeginFor i:= to 255 do
Ihist[i] := ;Total := ;For y:= 0 to 127 do
For x:= to 127 doG:= Image[x,y];Ihist[G]:=Ihist[G] + 1;Total := total + 1;
End;End;For i:= to 255 do
Hist[i] := Ihist[i]/total;End;
End.{Hist adalah array hasil histogram yang terbentuk}
PENSKALAAN GRAYLEVEL
Suatu fungsi transformasi digunakan untuk memetakan suatu
graylevel dalam citra. Fungsi dapat bersifat linear atau non
linear. Misalnya f(x,y) mendefinisikan suatu graylevel dari
pixel pada lokasi x,y, pada citra dengan fungsi transformasi
P.
Transformasi citra didefinisikan sebagai :
g(x,y) = P[f(x,y)] …………………. (1)
Fungsi pemetaan bisa berbagai fungsi yang berbeda.
Misalnya
g(x,y) = f(x,y) + 5x ……………..(2)
511
pemetaan graylevel menambah suatu konstanta yang berbeda
pada citra, ketika lokasi pixel berubah terhadap arah
horixontal dalam citra. Misalnya x = 511, maka nilai
Image Processing - 28
konstanta 5 ditambahkan pada tiap pixel dalam kolom ke
511 dalam citra.
Pada banyak kasus, pemetaan graylevel dari suatu citra ke
citra lain tergantung pada nilai graylevel pixel pada citra
asli.
Persamaan (1) dapat ditulis sebagai :
g = P(f) …………………………. (3)
dengan f adalah nilai graylevel dari citra masukan dan g
adalah nilai keluaran graylevel pada citra keluaran. Untuk
menggunakan persamaan (3), citra masukan di-scan pixel demi
pixel dan setiap nilai graylevel dari pixel (f) diganti
dengan nilai graylevel yang baru (g).
Sebagai contoh akan digunakan suatu transformasi linear
sebagai berikut :
g = c.f + b …………………….. (4)
variabel b dan c memiliki 2 fungsi penting :
b : digunakan untuk menyesuaikan brightness dari citra
c : digunakan untuk menyesuaikan contrast dari citra
Contoh transformasi linear graylevel :
255 255 255 255
g 232 g
32 0 232 255 32 255 0 255
0 255f f fc = 1 c = 1 c = 2 c = 2
Image Processing - 29
b = 32 b = -32 b = 0 b = -32
Sumbu horizontal berisi nilai graylevel masukan, f.
Sunmbu vertikal berisi hasil transformasi graylevel, g.
Seperti telihat pada gambar di atas, jika nilai graylevel
hasil transformasi melebihi jangkauan nilai graylevel,
maka keluarannya akan diset minimum atau maksimumu
graylevel yang dimungkinkan.
Pada sistem citra 8 bit, nilai graylevel umumnya memiliki
jangkauan (range) antara 0 s/d 255.
Jika variabel C, dinaikkan, maka kemiringan kurva hasil
naik.
Jika variabel b dinaikkan, maka graylevel minimum juga
naik atau dengan kata lain :
Jika variabel b diubah, maka kurva akan bergerak
naik/turun.
Jika variabel c diubah, maka akan berakibat pada
perubahan lebar histogram citra.
Transformasi linear dapat diperluas untuk non linear.
Misalnya bila ingin meningkatkan contrast pada daerah citra
yang egelap dan sekaligus mengurangi contrast dari daerah
terang pada citra. Contoh :
g = 31.875.2log (f + 1) ………………..(5) 255
Image Processing - 30
g
0 255 f
Contoh lain:
Misalnya ingin diubah contrast dari daerah pada citra yang
berisi pixel dengan nilai graylevel mendekati 128 dinaikkan,
dan selain itu contrast diturunkan. 255
g
0 f 255
Umumnya transformasi non linear digunakan untuk meningkatkan
suatu range graylevel pada citra.
AUTOSCALE
Transformasi linear lain adalah melakukan pen-skala-an
otomatis (autoscale) terhadap semua graylevel pada citra,
terhadap minimum/maksimum graylevel yang digunakan pada
suatu sistem citra (misalnya monitor).
Dengan operasi ini, graylevel diubah secara dinamik,
tergantung pada sistem yang dugunakan. Efek yang dihasilkan
adalah ingin menaikkan nilai contrast dan brgihtness dari
citra. Operasi autoscale disebut juga histogram stretching.
Persamaan berikut adalah transformasi linear untuk operasi
autosclaling untuk sistem citra dengan 256 graylevel.
Image Processing - 31
255g = (f – fmin) ……………………..
(6)fmax - fmin
Persaman 6 digunakan setelah citra asli discan per pixel
untuk menemukan graylevel minimum dan maksimum. Lalu
persamaan 6 tersebut diterapkan pada citra asli per pixel,
untuk menghasilkan citra baru yang memiliki graylevel
minimum = dan maksimum = 255.
Image Processing - 32
Algoritma autoscale : {asumsi : .graylvel awal 0 s/d
255, .citra 512x512}Var gscle, graymax, graymin : real;
X,y : integer;Smin,smax : integer;
BeginSmin := ;smax := ;Graymax := 255;graymin:= ;For y:= to 511 do
For x:= to 511 doIf image[x,y]> smax then
Smax := image[x,y]EndifIf image[x,y]< smin then
Smin := image[x,y]Endif
EndforEnd;If smax-smin <> 0 then
Ascle := (graymax-graymin)/(smax-smin)Else ascle := 0EndifFor y=0 to 511 do
For x=0 to 511 doImage[x,y]:=ascle * image[x,y] – smin + graymin;
EndforEndFOR
End.
HISTOGRAM EQUALIZATION
Histogram equalization ini akan mendistribusikan nilai
graylevel dari pixel dalam citra, sedemikian rupa sehingga
pixel untuk setiap graylevel memiliki nilai yang realtif
Image Processing - 33
1 2 4 3 21 1 2 1 12 1 3 1 12 1 1 1 11 3 1 4 4
sama. Histogram ini disebut juga uniform histogram. Misalnya
ada 2 histogram, yang pertama hasil dari citra yang belum
diequalisasi, hfi dan yang lain adalah citra hasil
equalisasi hgi. Tujuannya adalah mencari transformasi
grayscale.
g = P(f) ……………………….(1)
Yang menghasilkan histogram uniform hgi.
Pada uniform histogram dengan m graylevel yang berbesa, aakn
menghasilkan probabilitas dari tiap nilai grayleve sebesar :
hgi = 1/m ……………………..(2)
[unutk citra dengan 256 graylevel akan memberikan hgi =
1/256]
Transformasi untuk mengubah dari hfi menjadi hgi adalah
transformasi yang menjumlah elemen-elemen histogram dari
citra asli,
gi = P(fi) = (m – 1) hfi …….(3)
m adalah jumlah graylevel dari citra asli dan i adalah
graylevel ke-i untuk citra hasil equalisasi. Misalnya
graylevel g0 adalah sama dengan (m – 1)h0 dan g1 = (m -1).(h0
+ h1) dengan persamaan :
hi = ni/nt
maka persamaan (3) dapat ditulis sebagai jumlah dari pixel
nfi pada suatu nilai graylevel nd dari citra asli :
gi = P(fi) = (m – 1) nfi …….(4)
Image Processing - 34
ntdengan nt adalah total jumlah pixel.
Untuk melakukan histogram equalisasi pada suatu
citra,langkah yang dilakukan :
hitung histogram dari citra asli.
Hitung graylevel yang baru, gi dengan persamaan (3)
atau (4).
Tiap pisel pada citra diganti dengan nilai graylevel
yang baru, misalnya graylevel fo diganti dengan :
Fo = (m – 1).nfo nt
Sebagai contoh, lihat tabel hal 25
g0 = 7.hfo = 7.00627 = 0.439
g1 = 7.(hfo + hf1) = 7.(00627 + 0.2163) = 1.953
g2 = 7 (hfo + hf1 + hf2) = 7.(00627 + 0.2163 + 0.3066) =
4.099
g3 = 7 (hfo + …+ hf3) = 7.(00627 + 0.2163 + 0.3066 +
0.1954) = 5.467
g4 = 6.264
g5 = 6.578
g6 = 6.6836
g7 = 7.000
Karena hanya dimungkinkan graylevel 0 – 7,maka dibulatkan ke
nilai terdekat:g0 = 0 g1 = 2 g2 = 4 g3 = 5 g4 = 6 g5 = 7 g6 = 7 g7 = 7
Image Processing - 35
Karena graylevel 5,6, dan 7 sama, maka citra hasil
equalisasi ini berkurang menjadi 6 graylevel yang diskrit.
Jadi histogram hasil equalisasinya :
Graylevel ni hi0 1024 0.06271 0000 0.00002 3544 0.21633 0000 0.00004 5023 0.30665 3201 0.19546 1867 0.11397 1721 0.1050
Contoh citra dengan 5 x 5 dan 8 graylevel (m = 8)0 1 3 2 42 2 1 6 21 3 7 5 10 7 5 1 03 1 1 2 0
Histogram :
Graylevel
ni hi Akumulasi Gi Normalisasi gi
0 4 0.16
0.16 1.12
1
1 7 0.28
0.44 3.08
3
2 5 0.20
0.64 4.48
4
3 3 0.12
0.76 5.32
5
4 1 0.04
0.80 5.6 6
5 2 0.08
0.88 6.16
6
Image Processing - 36
gi = (m – 1).hfi = 7 . hfi
Citra hasil equalisasi histogram :
1 3 5 5 65 5 3 6 53 5 7 6 31 7 6 3 15 3 3 5 1
Di awal disebutkan bahwa tujuan penyamaan histogram ini
adalah mendistribusikan secara merata hasil histogram pada
citra, histogram ternyata benar-benar terdistribusi uniform.
Ada 2 alasan mengapa hal ini terjadi :
1 Graylvel ada dalam jumlah yang terbatas, dan nilainya
adalah hasil pembulatan ke nilai graylevel terdekat.
2 Jumlah pixel yang digunakan amat terbatas.
Untuk memberi hasil citra yang uniform distribusinya, maka
citra harus dalam bentuk kontinyu, di mana pada keadaan
sebenarnya hal ini tidak mungkin.
Algoritma : [pada citra 512 x 512 dengan 256 graylevel]Var x,y,i,j : integer;
HistEq : array[0..255] of integer;Hist : array[0..255] of real;Sum : real;
BeginHistogram(image,Hist) {panggil/bentuk histogram dari image}for i:= to 255 do
sum := 0.0for j:= to i do
sum:= sum + hist[j]endforhistEq[i]:=round(255 * sum);
end;for y:=0 to 511 do
Image Processing - 38
Histogramnya :
Graylevel
ni hi
0 0 01 4 0.082 0 03 7 0.284 0 05 8 0.326 4 0.16
HISTOGRAM SPESIFICATION
Kelemahan pada histogram equalization adalah histogram
hasilnya tidak bisa ditentukan (atau dibentuk) dan histogram
ini adalah hanya pendekatan terhadap histogram yang uniform.
Dengan histogram spesification, maka dapat dilakukan :
Penggelapan citra/sebaliknya
Meningkatkan/menurunkan brightness/contrast
Caranya : buat histogram yang diinginkan, lalu equalisasi
histogram ini.
Misalnya hdi adalah elemen ke-i dari histogran yang
diinginkan. Lalu transformasi graylevel yang dibutuhkan
untuk meng-ekualisasi histogram ini :
Si = P(di) = (m – 1). hdi ………………….. (1)
Langkah berikutnya dengan meng-equalisasi nilai graylevel
dari citra aslinya (seperti histogram equalization)
gi = P(fi) = (m – 1). hfi …………………… (2)
Langkah terakhir : dengan mencari inverse dari transformasi
graylevel dari persamaan (1)
Di = P-1 (Si) ……………………….. (3)
Image Processing - 40
lalu hasil transformasi invers ini diaplikasikan pada nilai
graylevel dari pixel pada citra yang akan diequalisasi
(dengan persamaan (2)).
Proses transformasi inverse pada pers. (3) dapat ditemukan
pada graylevel tertenti dengan cara men-scan melalui elemen-
elemen gi dan mencari index i yang memberi nilai graylevel
terdekat.
Sebagai contoh, kembali akan digunakan citra 128 x 128
dengan 8 graylevel,[lihat tabel hal 25]
Image Processing - 41
Misalnya histogram yang diinginkan adalah sebagai berikut :
Grayleveldi
H di Kumulasi Si
0 0.0 0.00 0.00 =0
1 0.0 0.00 0.00 =0
2 0.1 0.10 0.70 =1
3 0.25 0.35 2.45 =2
4 0.30 0.65 4.55 =5
5 0.25 0.90 6.30 =6
6 0.10 1.00 7.00 =7
7 0.0 1.00 7.00 =7
Transformasi inverse, nilainya diberikan untuk Si adalah :P-1(0) = 1 P-1(1) = 2 P-1(2) = 3 P-1(3) = 3 P-
1(4) = 4 P-1(5) = 4 P-1(6) = 5 P-1(7) = 6
Dalam memilih nilai transformasi, ada ambiguity. Yaitu dalam
memilih P-1(0), dapat dipilih baik 0 atau 1. Nilai 1,
dipilih karena memberikan kecocokan yang paling dekat. P-
1(7) dapat dipilih 6 atau 7. 6 dipilih dengan anggapan yang
paling mirip dengan histogram.
Secara umum transformasi inverse ini tidak selalu memberi
nilai tunggal, nilai yang dipilih harus nilai yang terdekat
dengan histogram yang diinginkan.
Image Processing - 42
Dari histogram equalization, nilai gray yang didapat :
g0 = 0 g1 = 2 g2 = 4 g3 = 5 g4 = 6 g5 = 7
langkah terakhir adalah pemetaan nilai graylevel hasil
equalisasi dari citra asli dengan nilai hasil transformasi.
g0 = 0 P-1(0) = 1 g3 = 5P-1(5) = 4
g1 = 2 P-1(2) = 3 g4 = 6 P-1(6) = 5
g2 = 4 P-1(4) = 4 g5 = 7 P-1(7) = 6
Image Processing - 43
Tabel akhir :
Graylevel
ni hi
0 0.000 0.0000
1 1028 0.0627
2 0.000 0.0000
3 3544 0.2163
4 8244 0.5020
5 1867 0.1139
6 1721 0.1050
7 0.000 0.0000
Terlihat bahwa puncak histogram telah berpindah dari
graylevel 2 menjadi 4. (citra lebih terang).
Algoritma :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) {panggil equalisasi histogram}For i:= 0 to 255 do
Sum:= 0.0;For j:= 0 to i do
Sum := sum + spec[j]EndHistspec[i] = round(255 * sum)
End{histogram yang dispesifikasikan disimpan di SPEC}for i:= 0 to 255 do
minval := abs(i – histspec[0]; minj := 0;for j:= 0 to 255 do
if abs(i – histspec[j]) < minval thenminval := abs(i – histspec[j])
Image Processing - 44
minj := jendif
invhist[i]:= minjendfor
endforfor y:= 0 to 511 do
for x:= 0 to 511 doimage[x,y] = invhist[image(x,y)]end
end
THRESHOLDING (NILAI AMBANG)
Pada banyak aplikasi citra, diinginkan untuk membagi nilai
graylevelnya menjadi subdaerah-subdaerah yang khusus
misalnya ingin diset untuk obyek menjadi graylevel putih dan
pada saat yang sama merubah background menjadi hitam.
Contoh : background
foreground
Untuk membagi citra menjadi 2 nilai graylevel, dengan 0
untuk background dan 255 untuk obyek, maka digunakan
transformasi berikut :255 jika f(x,y) > T
g(x,y) = 0 jika f(x,y) < T
nilai ambang (threshold) diambil, sehingga pixel background
diset 0 dan obyek diset 255. (Binary Image)
Image Processing - 45
Top Related