Statistik Dalam Image Enhancement Achmad Basuki Surabaya 2005
Materi Gray-scale Histogram Distribusi Kumulatif Histogram Equalization
Gray-Scale Histogram Histogram di dalam gambar gray-scale menyatakan distribusi dari derajat keabuan (terang/gelap) pada suatu gambar. Dari histogram ini dapat dilihat apakah gambar tersebut lebih banyak warna gelap atau lebih banyak warna terang Teknik histogram ini dapat dikembangkan untuk memperbaiki kualitas gambar (image enhancement) dengan apa yang dinamakan dengan Histogram Equalization, suatu teknik untuk meratakan distribusi terang/gelap sehingga gambar kelihatan lebih jelas.
Gray-Scale Histogram Gambar ini didominasi warna terang, karena grafik di sebelah kanan terlihat lebih banyak. Gambar ini didominasi warna gelap, karena grafik di sebelah kiri terlihat lebih banyak.
Distribusi Kumulatif Distribusi kumulatif C(x) adalah nilai total histogram dari tingkat keabuan=0 sampai dengan tingkat keabuan=x, dan didefinisikan dengan: Distribusi kumulatif ini dapat digunakan untuk menunjukkan perkembangan dari setiap step derajat keabuan. Pada distribusi kumulatif, gambar dikatakan baik bila mempunyai distribusi kumulatif yang pergerakannya hampir sama pada semua derajat keabuan.
Distribusi Kumulatif Perubahan yang tajam
Distribusi Kumulatif Gambar-gambar hasil photo mempunyai perubahan yang tidak terlalu tajam dan biasanya tidak lebih dari satu. Hal ini menunjukkan tingkat gradiasi yang halus pada gambar hasil photo. Gambar-gambar kartun mempunya banyak perubahan yang tajam, hal ini menunjukkan tingkat gradiasi pada gambar kartun rendah (kasar).
Histogram Equalization Histogram Equalization adalah suatu proses untuk meratakan histogram agar derajat keabuan dari yang paling rendah (0) sampai dengan yang paling tinggi (255) mempunyai kemunculan yang rata. Dengan histogram equalization hasil gambar yang memiliki histogram yang tidak merata atau distribusi kumulatif yang banyak loncatan gradiasinya akan menjadi gambar yang lebih jelas karena derajat keabuannya tidak dominan gelap atau dominan terang. Proses histogram equalization ini menggunakan distribusi kumulatif, karena dalam proses ini dilkakukan perataan gradien dari distribusi kumulatifnya.
Formulasi Histogram Equalization Histogram Equalization dari suatu distribusi kumulatif C adalah: C w adalah nilai distribusi kumulatif pada derajat keabuan w t adalah nilai threshold derajat keabuan= 2 8 atau 256 n x dan n y adalah ukuran gambar.
Perhitungan Histogram Equalization Perhatikan histogram berikut: Distribusi Kumulatifnya
Perhitungan Histogram Equalization wCww-baru Distribusi Kumulatif:
Histogram Equalization Pada Gambar
Aplikasi Histogram Equalization Buka project baru Pada form atur property ScaleMode=Pixel Tambahkan 2 pictureBox. Pada setiap pictureBox, atur property Appereance=Flat, Autoredraw=True dan ScaleMode=Pixel. Buat ukuran kedua pictureBox ini sama. Pada picture1, tambahkan gambar pada property picture Tambahkan 1 commandButton, isikan property Caption=Histogram Equalization. Atur tampilan seperti gambar di bawah ni.
Aplikasi Histogram Equalization Click pada Command1, dan isikan program berikut: ‘Inisialisasi variabel Dim h(256), h2(256), c(256) As Single For i = 0 To 255 h(i) = 0 h2(i) = 0 Next i
‘Menghitung distribusi kumulatif For i = 0 To Picture1.ScaleWidth - 1 For j = 0 To Picture1.ScaleHeight - 1 w = Picture1.Point(i, j) r = w And RGB(255, 0, 0) g = Int((w And RGB(0, 255, 0)) / 256) b = Int(Int((w And RGB(0, 0, 255)) / 256) / 256) xg = Int((r + g + b) / 3) xg = Int(0.6 * xg + 20) Picture1.PSet (i, j), RGB(xg, xg, xg) h(xg) = h(xg) + 1 Next j Next i c(0) = h(0) For i = 1 To 255 c(i) = c(i - 1) + h(i) Next i
'Histogram Equalization For i = 0 To Picture1.ScaleWidth - 1 For j = 0 To Picture1.ScaleHeight - 1 w = Picture1.Point(i, j) r = w And RGB(255, 0, 0) g = Int((w And RGB(0, 255, 0)) / 256) b = Int(Int((w And RGB(0, 0, 255)) / 256) / 256) xg = Int((r + g + b) / 3) yg = Int(256 * c(xg) / 128 / 128) h2(yg) = h2(yg) + 1 Picture2.PSet (i, j), RGB(yg, yg, yg) Next j Next I For i = 0 To 255 MSChart1.Row = i + 1 MSChart1.Data = h(i) MSChart1.RowLabel = Trim(Str(i)) MSChart2.Row = i + 1 MSChart2.Data = h2(i) MSChart2.RowLabel = Trim(Str(i)) Next i