Anda di halaman 1dari 11

PRAKTIKUM 5

OLEH :

NAMA : Zaqlul Razi


NIM : 1320305086
KELAS : M3/sore
JURUSAN : TIK
PRODI : TMJK

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

skala keabuan k bit adalah seperti pada persamaan berikut: dimana


Ci = distribusi kumulatif dari nilai skala keabuan ke i dari citra asli
round = fungsi pembulatan ke bilangan yang terdekat
Ko = nilai keabuan hasil histogram equalization
w = lebar citra
h = tinggi citra
Gambar berikut merupakan contoh histogram citra asli yang belum diratakan dan histogram
citra setelah proses equalization.

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

Setelah menampilkan new project kemudian pilih Windows Froms Application

Dengan memberikan Name pada program tersebut Dan kemudian klik OK jika Telah
selesai

Kemudian desain form seperti gambar di bawah ini


Pada chart jangan lupa di ubah series dan tambahkan juga Jember satu lagi

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

Public Class Form1


Nama classnya adalah Form1

Dim Gambar1, Gambar As Bitmap


Dim adalah untuk mendeklarasikan nama variabel dengan namanya gambarBW dan
Gambari sebagai bitmap

Dim Hist2(256), HistGr(256) As Integer


Untuk mendeklarasikan variabel Hist dan HistGr dengan nilai 256

Dim cdf1(256) As Integer


Variable cdf adalah variabel comulatif distribusi function

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

Private Sub Button1_Click ....


Menginput source pada button1

Gambari = New Bitmap(KTKGambar1.Image)


Membuat variabel Gambari dengan Bitmap KTKGambar1

Dim x, y,VBW,i As Integer


Mendeklarasikan variabel x dan y dengan nilai integer

Dim VM, VH, VB,GR As Double


Mendeklarasikan variabel VM,VH,VB,GR dengan type data double

Dim HistGr(256) As Integer


Mendeklarasikan variabel HistGr dengan nilai 256 integer

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

GR = (0.2126 * VM) + (0.7152 * VH) + (0.0722 * VB)


Mengubah gambar menjadi grayscale dengan rumus GR = (0.2126 * VM) + (0.7152 *
VH) + (0.0722 * VB) sehingga menghasilkan gambar seperti pada picture box 3 ITU
R

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.FileName = "Pilih Gambar"


Untuk membuat file dialog dengan nama Pilih Gambar

OpenFileDialog1.Filter = ""
Untuk membuat filter gambar

If OpenFileDialog1.FileName = "" Then Return


Jika file kosong maka kembali

If Not Me.KTKGambar1.Image Is Nothing Then


Jika gambar KTKGambar1 kosong maka lanjut

KTKGambar1.Image = Nothing
KtkGambar1 tidak ada

Me.KTKGambar1.Image = Image.FromFile(OpenFileDialog1.FileName)
Membuka KTKGambar1 dari openfiledialog

MsgBox("Error" & ex.Message)


Apabila terjadi kesalahan maka akan keluar pesan error

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

prsn = Round((x / (.Width - 1)) * 100)


Variable prsn diisi dengan nilai bulat karna round dari hasil nilai X di bagi dengan
width -1 lalu di kali 100

cdf2(i + 1) = cdf2((i + 1) - 1) + Hist2(i + 1)


Variable cdf2 diisi dengan perhitungan dari cdf2 (i +1) -1) +hist2 (i+1)

End With
End Sub
End Class
Untuk mengakhiri program

Anda mungkin juga menyukai