OLEH :
JURUSAN TIK
POLITEKNIK NEGERI LHOKSEUMAWE
EKUALISASI HISTOGRAM [HISTOGRAM EQUALIZATION]
Histogram merupakan sebuah diagram yang menunjukkan jumlah titik yang terdapat
pada sebuah citra untuk setiap tingkat keabuan. Sumbu x (absis) pada histogram menunjukkan
tingkat warna, sedangkan sumbu y (ordinat) menunjukkan frekuensi kemunculan titik. Contoh
sebuah gambar dan histogramnya dapat dilihat pada gambar berikut
Histogram dari sebuah citra dapat dimodifikasi untuk memperoleh citra yang sesuai dengan
keinginan atau memperbaiki kualitas citra. Salah satu cara yang dapat digunakan untuk
memodifikasi histogram citra adalah perataan histogram (histogram equalization). Histogram
equalization adalah sebuah proses yang mengubah distribusi nilai derajat keabuan pada sebuah
citra sehingga menjadi seragam (uniform). Tujuan dari histogram equalization adalah untuk
memperoleh penyebaran histogram yang merata sehingga setiap derajat keabuan memiliki
jumlah piksel yang relatif sama. Perataan histogram diperoleh dengan cara mengubah derajat
keabuan sebuah piksel (r) dengan derajat keabuan yang baru (s) dengan sebuah fungsi
transformasi T (Gonzalez, 2002). Secara matematis dapat ditulis dengan persamaan: s = T(r). r
dapat diperoleh kembali dari s dengan transformasi invers seperti pada persamaan
dimana . Rumus yang digunakan untuk menghitung histogram
equalization dapat ditulis seperti pada persamaan
berikut:
dimana nk adalah nilai piksel pada derajat keabuan k, dan n adalah jumlah seluruh piksel pada
citra. Dari perumusan tersebut dapat diartikan bahwa derajat keabuan (k) dinormalkan terhadap
derajat keabuan (L-1). Nilai rk = 0 menyatakan hitam, dan rk= 1 menyatakan putih dalam skala
keabuan yang didefinisikan.
Rumus lain yang dapat digunakan untuk menghitung histogram equalization pada citra dengan
Sedangkan contoh tahap-tahap perhitungan manual untuk ekualisasi histogram adalah sebagai
berikut:
1. Misalkan terdapat sebuah citra keabuan dengan nilai-nilai piksel sebagaik berikut:
2. Dari nilai piksel pada matriks citra tersebut, dihitung frekuensi dan distribusi kumulatif dari
nilai skala keabuannya. Daftar frekuensi dan pehitungan distribusi kumulatif dapat dilihat pada
tabel berikut:
3. Menghitung nilai keabuan dari hasil perhitungan distribusi kumulatif menggunakan rumus
yang sebelumnya telah dituliskan di atas. Berikut ini merupakan contoh perhitungan untuk
skala keabuan 2 dan 30:
Hasil perhitungan untuk seluruh nilai skala keabuan dapat dlihat pada tabel berikut:
Sedangkan matriks citra setelah proses histogram equalization adalah sebagai berikut:
PRAKTIKUM 5
LANGKAH KERJA :
Buka Program Microsoft Visual Basic 2010 lalu pilih FILE kemudian New project
Dengan memberikan Name pada program tersebut Dan kemudian klik OK jika Telah
selesai
Setelah desain program seperti tersebut lalu masukkan kode programnya seperti di
bawah:
Source Code :
HASIL PROGRAM :
Bisa dilihat dari gambar asli yang pertama grayscale biasa lalu kita ubah menjadi
ekualitation. Dapat dilihat di chart perubahan dari warnanya menjadi disama ratakan hampir
di setiap pixel.
ANALISA :
Imports System.Math
Import ini berfungsi agar dapat menggunakan sistem matematika
Dim N As Integer
Variable N berfungsi menyatakan banyaknya pixel pada Citra
Dim hv(256) As Integer
Variabel di atas berfungsi untuk sebagai a[k] pada rumus ekualitation
Array.Clear(HistGr, 0, HistGr.Length)
Membuat bilangan Array dengan variabel HistGr
For x = 0 To .Width 1
Pengulangan dengan X = 0 sampai batas lebar gambar di kurang 1
For y = 0 To .Height 1
Pengulangan dengan Y = 0 sampai batas tinggi gambar di kurang 1
VM = .GetPixel(x, y).R
VM untuk warna merah
VH = .GetPixel(x, y).G
VH untuk warna hijau
VB = .GetPixel(x, y).B
VB untuk warna biru
HistGr(GR) = HistGr(GR) + 1
HistGr di tambah dengan 1
.SetPixel(x, y, Color.FromArgb(GR,GR,GR))
Disini kita mengeset gambar tadi yang terdapat nilai x dan y, dan untuk warna
menjadi variable GR.
KTKGambar1.Image = Gambar
Gambar1.Refresh()
Membuat gambar 1 berisikan hasil dari variabel Gambar, lalu di refresh.
Me.Chart1.Series("Gray").Points.AddXY(i, HistGr(i))
Me maksud dari class 1 dengan chart untuk membuat data grafik dari variabel HistGr
dengan series grafik Gray
OpenFileDialog1.Filter = ""
Untuk membuat filter gambar
KTKGambar1.Image = Nothing
KtkGambar1 tidak ada
Me.KTKGambar1.Image = Image.FromFile(OpenFileDialog1.FileName)
Membuka KTKGambar1 dari openfiledialog
Grf = hv(gr)
Variable Grf kita isi dengan variabel hv yang ada variabel gr
Hist2(Grf) += 1
Variable Hist2 akan di tambah satu selalu sampai nilai variabel Grf
End With
End Sub
End Class
Untuk mengakhiri program