PROGRAM WIENER FILTER SELENGKAPNYA ADALAH SEBAGAI BERIKUT:

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 ImgFilterWiener var Image:TImage; Mtrx:TMatrixFilter; nCol,nRow:byte; var ProgressBar1: TProgressBar; var dx,dy:byte; ImgTemp:TImage; mean,pSpectrum:Variant; pSpectrumNoise: real; procedure CalculateParameter x,y:integer; var row,col:integer; clrGray,tot,tot2:real; begin tot:=0; tot2:=0; for col:=1 to nCol do for row:=1 to nRow do begin clrGray := ImgGetGray ImgTemp, x+col-dx-1, y+row-dy-1; tot := tot + Mtrx[col,row] clrGray; tot2 := tot2 + Mtrx[col,row] SqrclrGray; end; mean[x,y] := totnColnRow; pSpectrum[x,y] := tot2nColnRow - mean[x,y]; end; procedure CalculatePixel x,y:integer; var clrGray:byte; var c:real; begin clrGray := ImgGetGray ImgTemp, x,y; c := mean[x,y] + pSpectrum[x,y]pSpectrum[x,y]+pSpectrumNoise clrGray-mean[x,y]; clrGray := ByteRange c; end; var x,y: integer; clrGray: byte; begin dx := nCol div 2; dy := nRow div 2; ImgTemp := TImage.Create Image.Parent; ImgTemp.Picture.Graphic := Image.Picture.Graphic;; mean := VarArrayCreate[0,Image.Width-1, 0,Image.Height-1], varSingle; pSpectrum := VarArrayCreate[0,Image.Width-1, 0,Image.Height-1], varSingle; pSpectrumNoise := 0; { parameter } ProgressBar1.Max := Image.Width; ProgressBar1.Position := 0; pSpectrumNoise := 0; for x:=dx to Image.Width-1-dx do begin for y:=dy to Image.Height-1-dy do begin CalculateParameter x,y; pSpectrumNoise := pSpectrumNoise + pSpectrum[x,y]; Image.Canvas.Pixels[x,y] := RGB clrGray,clrGray,clrGray; end; { for y } ProgressBar1.Position := x; end; { for x } pSpectrumNoise := pSpectrumNoise Image.Width-dxImage.Height-dy; ProgressBar1.Position := ProgressBar1.Max; { filtering process } for x:=dx to Image.Width-1-dx do begin for y:=dy to Image.Height-1-dy do begin CalculatePixel x,y, clrGray; Image.Canvas.Pixels[x,y] := RGB clrGray,clrGray,clrGray; end; { for y } ProgressBar1.Position := x; end; { for x } ProgressBar1.Position := ProgressBar1.Max; Image.Repaint; end; end.

BAB 4 GLOBAL THRESHOLDING

4.1 DASAR TEORI GLOBAL THRESHOLDING

Tresholding adalah suatu metode untuk menghasilkan citra biner hitam 0 dan putih 1, dengan menggunkan rumus sebagai berikut: 12, 3 = 4 1 56 -2, 3 ≥ 8 56 -2, 3 89 …………………………………….………………………..4.1 Dengan gx,y adalah citra biner dari citra grascale fx,y, dan T merupakan nilai ambang.

4.2 CARA MEMBUAT PROGRAM THRESOLDING:

1. Klik tombol start lalu Program, Borland Delphi 7, Delphi 7. Nanti akan muncul

gambar berikut: Gambar 4.1 Start Program 2. P a d a o b ject inspector berinama captionnya dengan Global Thresholding dan namenya dengan nama FormGlobalThreshold. Gambar 4.2 Form Global Thresholding 3. Tambahkan image1, image2, OpenPictureDialog dan button1 ke form. Pada object inspector stetch kedua image di ganti true, kemudian caption pada button diganti dengan Open, Namenya dengan btOpen. Gambar 4.3 Button Open

4. Simpan project dan unitnya dengan cara save all.

Gambar 4.4 Save All 5. Beri nama unitnya dengan nama UnitGlobalThresolding. Projectnya dengan nama ProjectGlobalThresolding. Gambar 4.5 Save Unit Global Thresolding

6. Berinama Projectnya dengan nama ProjectGlobalThresolding.

Gambar 4.6 Save Project Global Thresolding

7. Doble clik button open, lalu keting program berikut:

var GlobalThreshold: TGlobalThreshold; FileNameImg: string; implementation {R .dfm} procedure TGlobalThreshold.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; end.