Selamat datang di sonoku.com

Membuat Histogram Citra dengan Dephi

Histogram adalah grafik yang menujukkan frekuensi kemunculan setiap nilai gradasi warna[3]. Sumbu x menunjukkan intensitas warna, sedangkan y menunjukkan frekuensi kemunculannya. Kita ambil contoh citra greyscale 3 bit ukuran 5×5 piksel dengan peta berikut.


Kita bisa lihat pada gambar diatas, nilai 1 muncul 4 kali, nilai 2 muncul 3 kali, nilai 3 muncul 3 kali dan seterusnya jika kita buat tabelnya  akan seperti ini.

Dan bila digambarkan grafiknya seperti berikut

Agar gambar grafik tidak melebihi batas layar maka perlu dilakukan proses normalisasi. Prosesnya cukup membagi jumlah pada suatu nilai intensitas dengan jumlah keseluruhan piksel. Tabel hasil normalisasinya akan tampak seperti berikut.

Membuat histogram dengan Delphi

Baik, sekarang kita mulai saja mengimplementasikannya kedalam program Delphi. Kita mulai dengan menaruh komponen berikut ke dalam form dan setting propertinya seperti tabel.

Khusus untuk komponen Chart1 ikuti langkah berikut:

  1. Klik dua kali pada komponen Chart1, hingga muncul dialog Editing Chart1
  2. Pada tab Chart, sub tab Series, tambahkan series dengan klik tombol Add, kemudian pada dialog TeeChart Gallery pilih Bar dan non-akitfkan mode 3D (hilangkan centang 3D), klik OK.
  3. Pada tab Chart, sub tab Axis, hilangkan tanda centang pada Show Axis.
  4. Pada tab Chart, sub tab Titles, ganti judulnya menjadi HISTOGRAM.
  5. Pada tab Chart, sub tab Legend, hilangkan centang pada Visible.
  6. Pada tab Series, sub tab Marks, hilangkan centang pada Visible.

Berikut adalah sourcecode untuk membuat histogram dengan Delphi.

[sourcecode language=”delphi”]
procedure TForm1.Histogram;
var piksel : PByteArray;
Gray, TotalPiksel, i, brs, kol : integer;
R, G, B : Real;
begin
Citra.PixelFormat := pf24bit;
for i := 0 to 255 do
begin
HistogramGray[i] := 0
end;
TotalPiksel := 0;
for brs := 0 to Citra.Height – 1 do
begin
kol := 0;
piksel := Citra.ScanLine[brs];
repeat                //greyscaling
R := 0.11*piksel[kol];
G := 0.59*piksel[kol+1];
B := 0.3*piksel[kol+2];
Gray := round(R+G+B);
HistogramGray[Gray] := histogramgray[Gray]+1;        // pengambilan data intensitas
inc(TotalPiksel);
Inc(kol,3);
until kol > 3*(Citra.Width-1);
end;
for kol:=0 to 255 do // normalisasi
HistogramGray[kol] := HistogramGray[kol]/TotalPiksel
end;
[/sourcecode]

Berikut kode untuk penampilan data histogram ke bentuk grafik

[sourcecode language=”delphi”]
procedure TForm1.HIstogram1Click(Sender: TObject);
var i:Integer;
begin
Histogram;
Series1.Clear;
for i := 0 to 255 do
begin
Series1.AddXY(i, HIstogramGray[i],”,clBlack);
end;
end;
[/sourcecode]

Sekedar perbandingan hasil histogram menggunakan Delphi dengan histogram milik Adobe Photoshop.

ImageProcessing-Histogram.rar

Comments

comments

2 thoughts on “Membuat Histogram Citra dengan Dephi

Leave a Reply