Tambahkan program berikut ke UnitGlobalThressolding. Doble klik button Global Thresolding lalu ketik program berikut

procedure TFormGlobalThreshold.btOpenClickSender: TObject; begin if OpenPictureDialog1.Execute then begin FileNameImg := OpenPictureDialog1.FileName; Caption := Mammo Analisys : + OpenPictureDialog1.FileName; Image1.Picture.LoadFromFile OpenPictureDialog1.FileName; Image2.Visible := False; end; end; procedure TFormGlobalThreshold.btGlobalThresoldingClickSender: TObject; var thres:real; begin Image2.Visible := True; Image2.Picture.Graphic := Image1.Picture.Graphic; thres := StrToFloatDef EditThreshold.Text,5; ImgGlobalThresholding Image2,thres,ProgressBar1; EditThreshold.Text := IntToStrRoundthres; end; procedure TFormGlobalThreshold.btExitClickSender: TObject; begin FormGlobalThreshold.Close; end; end. unit UnitImageProses; interface uses WINPROCS, Graphics, ExtCtrls, ComCtrls, Variants; type TFreqHist = array [0..255] of longint; TMatrixFilter = array [1..16,1..16] of real; function RgbToGray Clr:TColor : byte; function ImgGetGray var Image:TImage; x,y:integer : byte; procedure ImgConvertToGrayscale var Image1:TImage; var ProgressBar1: TProgressBar; procedure ImgGlobalThresholding var Image:TImage; var thres:real; 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 ImgGlobalThresholding var Image:TImage; var thres:real; var ProgressBar1: TProgressBar; var x,y,counter:integer; m1,m2,n1,n2:real; Clr:TColor; ClrGray:byte;