15.  Tambahkan  button  pada  form,  pada  object  inspector  rubah  properties captionnya  dengan  nama  Equalization  dan  Namenya  dengan  nama
btEqualization.
Gambar 2.17 Button Equalization
16.  Tambahkan  ProgressBar  ke  form  dengan  cara,  pilih  menu  Win32, ProgressBar. Lalu klik ke form, lalu geser kekanan.
Gambar 2.18 Menu ProgresBar
17.  Hasilnya sebagai berikut.
Gambar 2.19 Hasil ProgresBar
18.  Tambahkan unit baru, dengan cara file, new unit.
Gambar 2.20 New Unit
19.  Simpan unitnya dengan cara save as.
Gambar 2.21 Save All
20.  Berinama unitnya dengan nama UnitImageProses.
Gambar 2.22 Save UnitImageProses 21. Hasilnya sebagai berikut.
Gambar 2.23 Hasil Save UnitImageProses
22.  Ketik  program berikut ke dalam UnitImageProses.
unit UnitImageProses; interface
uses WINPROCS, Graphics, ExtCtrls, ComCtrls;
type TFreqHist = array [0..255] of longint;
function ImgGetGray var Image:TImage; x,y:integer : byte; procedure
ImgHistogramEqu var
Image:TImage; var
ProgressBar1: TProgressBar;
implementation const
PercentR = 0.299; PercentG = 0.587;
PercentB = 0.114; function ByteRange r:double : byte;
begin if r0 then ByteRange:=0
else if r255 then ByteRange:=255 else ByteRange:=Roundr;
end; function RgbToGray Clr:TColor : byte;
var r,g,b:byte; begin
r := GetRValueClr;
g := GetGValueClr; b := GetBValueClr;
RgbToGray := ByteRange rPercentR + gPercentG + bPercentB; end;
function ImgGetGray var Image:TImage; x,y:integer : byte; begin
Result := RgbToGray Image.Canvas.Pixels[x,y]; end;
procedure  ImgConvertToGrayscale  var  Image1:TImage;  var  ProgressBar1: TProgressBar;
var x,y:integer; ClrGray:byte; begin
ProgressBar1.Max := Image1.Width-1; ProgressBar1.Position := 0;
for x:=0 to Image1.Width-1 do begin
for y:=0 to Image1.Height-1 do begin
ClrGray := ImgGetGray Image1,x,y; Image1.Canvas.Pixels[x,y] := RGB ClrGray,ClrGray,ClrGray;
end; Image1.Repaint;
ProgressBar1.Position := x; end;
end; procedure
ImgHistogramEqu var
Image:TImage; var
ProgressBar1: TProgressBar;
var x,y,i:integer; Clr:TColor; ClrGray:byte;
Freq, NewColor: TFreqHist; TotFreq, ImgSize: longint;
begin ProgressBar1.Max  := Image.Width-1;
ProgressBar1.Position := 0; { set Frek[i]=0 }
for i:=0 to 255 do Freq[i]:=0; { hitung frekuensi tiap warna }
for x:=0 to Image.Width-1 do for y:=0 to Image.Height-1 do
begin ClrGray := ImgGetGray Image,x,y;
Inc Freq[ClrGray]; end;