Sintak Dari Pembacaan Plat Nomor Kendaraan

Post on 11-Aug-2015

36 views 7 download

Transcript of Sintak Dari Pembacaan Plat Nomor Kendaraan

Sintak dari Pembacaan Plat Nomor Kendaraan unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ExtDlgs, TeeProcs, TeEngine, Chart, Series;type TForm1 = class(TForm) Button1: TButton; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; TabSheet6: TTabSheet; TabSheet7: TTabSheet; IOriginal: TImage; IMerah: TImage; IHijau: TImage; IBiru: TImage; IGC1: TImage; IGC2: TImage; IGC3: TImage; tgyuguhju: TTabSheet; IGC: TImage;OpenPictureDialog1: TOpenPictureDialog; Chart1: TChart; Series1: TLineSeries; Chart2: TChart; Chart3: TChart; Series2: TLineSeries; Series3: TLineSeries; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; IHasil: TImage; Label6: TLabel; procedure Button1Click(Sender: TObject); procedure IGC3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure IGC1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure IGC2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure IOriginalMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;typeTRGB32 = packed record B,G,R,A: Byte; end;TRGB32Array = packed array[0..MaxInt div SizeOf(TRGB32)-1] of TRGB32; PRGB32Array = ^TRGB32Array;var Form1: TForm1;implementationuses Types;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var y,x,panjang,lebar : Integer; LineGC31,LineGC32,LineGC33,LineGC34,LineGC35,LineGC36,LineGC37,LineGC38,LineGC 39,LineGC310,LineGC311,LineGC312,LineGC313, LineOriginal,LineMerah,LineBiru,LineHijau,LineGC1,LineGC2,LineGC3,LineIGC: PRG B32Array; jumlahGC1,jumlahGC2,jumlahGC3,K,n:integer; hajarhitamGC3,hajarputihGC3,lebarhitam,itungan,jumlahGC3sebelumnya:integer; ilang,bener:boolean; rerataX:real; kotak:TRect; HasilBMP:TBitmap; begin if (OpenPictureDialog1.Execute)thenbegin //membuat Image dengan format 32 bit IOriginal.Picture.LoadFromFile(OpenPictureDialog1.FileName); OpenPictureDialog1.Filter:='BMP files (*.bmp)|*.BMP|';// mendefinisikan file khusus berjenis .BMPIOriginal.Picture.Bitmap.PixelFormat := pf32bit; IMerah.Picture.Bitmap.PixelFormat IBiru.Picture.Bitmap.PixelFormat IHijau.Picture.Bitmap.PixelFormat IGC1.Picture.Bitmap.PixelFormat IGC2.Picture.Bitmap.PixelFormat IGC3.Picture.Bitmap.PixelFormat IGC.Picture.Bitmap.PixelFormat := pf32bit; := pf32bit; := pf32bit; := pf32bit; := pf32bit; := pf32bit; := pf32bit;//mendefinisikan gambar panjang dan lebar yang di analisa panjang lebar := IOriginal.Width; := IOriginal.Height;//mengisi image yang original ke Imerah sampai IGC IMerah.Picture.Assign(IOriginal.Picture); IHijau.Picture.Assign(IOriginal.Picture); IBiru.Picture.Assign(IOriginal.Picture); IGC1.Picture.Assign(IOriginal.Picture); IGC2.Picture.Assign(IOriginal.Picture); IGC3.Picture.Assign(IOriginal.Picture); IGC.Picture.Assign(IOriginal.Picture); //membersihkan semua kondisi clear Series1.Clear; Series2.Clear; Series3.Clear; //menganalisa for y := 0 to lebar - 1 do //menganalisa looping dari Y =0 - Y = lebar -1 begin LineOriginal := IOriginal.Picture.Bitmap.ScanLine[y];//mengambil ga mbar Iorigigal pada Y LineMerah LineBiru LineHijau := IMerah.Picture.Bitmap.ScanLine[y]; := IBiru.Picture.Bitmap.ScanLine[y]; := IHijau.Picture.Bitmap.ScanLine[y];LineGC1 LineGC2 LineGC3 LineIGC:= IGC1.Picture.Bitmap.ScanLine[y]; := IGC2.Picture.Bitmap.ScanLine[y]; := IGC3.Picture.Bitmap.ScanLine[y]; := IGC.Picture.Bitmap.ScanLine[y];//berapa banyak jumlah warna hitam pada jumlahGC1,jumlahGC2,jumlahGC 3 dimulai dari 0 jumlahGC1:=0; jumlahGC2:=0; jumlahGC3:=0;//untuk mehilangkan noise hitam dan putih hajarhitamGC3:=0; hajarputihGC3:=0; ilang:=False; //Menganalisa nilai X dari 0 sampai panjang 1 pixel for x := 0 to panjang -1 do begin LineMerah[x].R:=LineOriginal[x].R;//membuat gambar original memjadi warna merah LineMerah[x].G:=0; LineMerah[x].B:=0;LineHijau[x].R:=0; LineHijau[x].G:=LineOriginal[x].G;//membuat gambar original memjadiwarna Hijau LineHijau[x].B:=0;LineBiru[x].R:=0; LineBiru[x].G:=0; LineBiru[x].B:=LineOriginal[x].B;//membuat gambar original memjadi w arna Biru // if (LineOriginal[x].R