Histogram dengan VB 2008
Assalamualaikum sahabat say yang cerdas, sudah lama tidak meng-Update blog ini, alhamdulillah hari ini saya kembali lagi untuk berbagi hal yang sederhana, setelah dijelaskan pada kesempatan sebelumnya mengenai Histogram kini saya tinggal memberikan codingnya sesuai dengan logika yang terdapat pada Histogram dengan vb.net 2008.
langkah-langkahnya:
1 buat form dengan isi:
a. picturebox yang saya beri nama picAwal dan set ja langsung image yang akan di proses
b. AxMSChart1(cari ja di om google cara buat grafik atau chart)
c. button
2. coding
Dim bmap As Bitmap 'deklarasi gambar/image dengan tipe Bitmap
bmap = New Bitmap(picAwal.Image) 'Gambar asli dijadikan gambar Bitmap
picAwal.Image = bmap
Dim tempbmp As New Bitmap(picAwal.Image) 'deklarasi gambar Bitmap dari gambar asli untuk diproses
Dim Red As Integer, histo(255) As Integer 'saya hanya menampilkan histogram yang red-nya saja
Dim X, Y As Integer
With tempbmp
For X = 0 To .Height - 1
For Y = 0 To .Width - 1
Red = CInt(.GetPixel(Y, X).R) 'ambil nilai warna merah (Red) pada pixel(Y,X)
histo(Red) += 1 'untuk menghitung frekwensi kemunculan setiap intensitas pixel, setiap pixel yang sama muncul maka nilai akan + 1
Next
Next
End With
AxMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar
AxMSChart1.RowCount = 256 'Menentukan jumlah baris adalah 256
AxMSChart1.ColumnCount = 1 'Menentukan jumlah grafik adalah 1
Dim jml As Integer
jml = (tempbmp.Width * tempbmp.Height) ' digunakan untuk membagi nilai kemunculan.. contoh pixel dengan intensitas 1 muncul 100 kali pada citra 1000 pixel maka frekwensinya adalah 0.1
For X = 1 To 256 ' perulangan untuk menampilkan frekwensi 0 sampai 255 intensitas pixel (dengan jumlah 256) pada grafik
'set baris ke - X diawal adalah 1 sebelum looping
AxMSChart1.Row = X
'Setting label pada baris chart ke-X dengan x-1(artinya pada baris pertama diberi label 0 karena pixel dimuali dari 0)
AxMSChart1.RowLabel = X - 1
AxMSChart1.Column = 1
AxMSChart1.Data = histo(X - 1) / jml 'tampilkan grafik histogram ke X-1 (sebelum looping nilai x-1 adalah 0)
Next
Selesai dan semoga bermanfaat ya... jika masih bingung silahkan komentar dan lampirkan email anda biar saya kirim programnya melalui email..
langkah-langkahnya:
1 buat form dengan isi:
a. picturebox yang saya beri nama picAwal dan set ja langsung image yang akan di proses
b. AxMSChart1(cari ja di om google cara buat grafik atau chart)
c. button
2. coding
Dim bmap As Bitmap 'deklarasi gambar/image dengan tipe Bitmap
bmap = New Bitmap(picAwal.Image) 'Gambar asli dijadikan gambar Bitmap
picAwal.Image = bmap
Dim tempbmp As New Bitmap(picAwal.Image) 'deklarasi gambar Bitmap dari gambar asli untuk diproses
Dim Red As Integer, histo(255) As Integer 'saya hanya menampilkan histogram yang red-nya saja
Dim X, Y As Integer
With tempbmp
For X = 0 To .Height - 1
For Y = 0 To .Width - 1
Red = CInt(.GetPixel(Y, X).R) 'ambil nilai warna merah (Red) pada pixel(Y,X)
histo(Red) += 1 'untuk menghitung frekwensi kemunculan setiap intensitas pixel, setiap pixel yang sama muncul maka nilai akan + 1
Next
Next
End With
AxMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar
AxMSChart1.RowCount = 256 'Menentukan jumlah baris adalah 256
AxMSChart1.ColumnCount = 1 'Menentukan jumlah grafik adalah 1
Dim jml As Integer
jml = (tempbmp.Width * tempbmp.Height) ' digunakan untuk membagi nilai kemunculan.. contoh pixel dengan intensitas 1 muncul 100 kali pada citra 1000 pixel maka frekwensinya adalah 0.1
For X = 1 To 256 ' perulangan untuk menampilkan frekwensi 0 sampai 255 intensitas pixel (dengan jumlah 256) pada grafik
'set baris ke - X diawal adalah 1 sebelum looping
AxMSChart1.Row = X
'Setting label pada baris chart ke-X dengan x-1(artinya pada baris pertama diberi label 0 karena pixel dimuali dari 0)
AxMSChart1.RowLabel = X - 1
AxMSChart1.Column = 1
AxMSChart1.Data = histo(X - 1) / jml 'tampilkan grafik histogram ke X-1 (sebelum looping nilai x-1 adalah 0)
Next
Selesai dan semoga bermanfaat ya... jika masih bingung silahkan komentar dan lampirkan email anda biar saya kirim programnya melalui email..
Komentar
Posting Komentar