www.pudn.com > PlateDSP.rar > main.pas


unit main; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, OleCtrls, PlateDSP_TLB, ExtCtrls, StdCtrls, 
  Defs; 
 
type 
  TForm1 = class(TForm) 
    PlateDSPX1: TPlateDSPX; 
    ImageCar: TImage; 
    LabelNumber: TLabel; 
    LabelColor: TLabel; 
    Button1: TButton; 
    ImagePlate: TImage; 
    Button2: TButton; 
    procedure FormShow(Sender: TObject); 
    procedure PlateDSPX1Recoged(Sender: TObject; PlateNum: Integer); 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
  private 
    { Private declarations } 
    OnOff: Integer; 
  public 
    { Public declarations } 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.FormShow(Sender: TObject); 
var 
Tmp: Integer; 
 
begin 
    OnOff := 0; 
{ 
    // hide tool buttons 
    Tmp := 0; 
    PlateDSPX1.PortControl(SET_VALUE_NOSAVE or VAL_TOOL_BUTTONS, Tmp); 
 
    // hide statusbar 
    Tmp := 0; 
    PlateDSPX1.PortControl(SET_VALUE_NOSAVE or VAL_STATUS_BAR, Tmp); 
} 
    { connect #1 video capture card } 
    PlateDSPX1.VideoConnect(0); 
 
end; 
 
procedure TForm1.PlateDSPX1Recoged(Sender: TObject; PlateNum: Integer); 
var 
    TempStream : TMemoryStream; 
    pMemImage : PInteger; 
    MemImageSize: Integer; 
 
begin 
    try 
      //check recog result 
      if( PlateNum > 0 ) then 
      begin 
        //list 
 
        //display car-image 
        TempStream := TMemoryStream.Create; 
        pMemImage := PInteger(PlateDSPX1.BuildMemoryImage( 0, MemImageSize )); 
        if( pMemImage <> nil ) then 
        begin 
          TempStream.Write( pMemImage^, MemImageSize ); 
          TempStream.Position := 0; 
          ImageCar.Picture.Bitmap.LoadFromStream( TempStream ); 
        end; 
 
        TempStream.SetSize(0); 
        //display plate-image 
        pMemImage := PInteger(PlateDSPX1.BuildMemoryImage( $10000, MemImageSize )); 
        if( pMemImage <> nil ) then 
        begin 
          TempStream.Write( pMemImage^, MemImageSize ); 
          TempStream.Position := 0; 
          ImagePlate.Picture.Bitmap.LoadFromStream( TempStream ); 
        end; 
 
        TempStream.Free; 
 
        //get recognition result 
        LabelNumber.Caption := PlateDSPX1.GetPlateNumber(0); 
        LabelColor.Caption := 'ÑÕÉ«:' + IntToStr(PlateDSPX1.GetPlateColor(0)); 
      end; 
    except 
        ; 
    end; 
end; 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
Tmp :Integer; 
 
begin 
    { hide tool buttons } 
    Tmp := OnOff; // 0 = disable, 1 = enable 
    PlateDSPX1.PortControl(SET_VALUE_NOSAVE or VAL_TOOL_BUTTONS, Tmp); 
 
    { hide statusbar } 
    Tmp := OnOff; // 0 = disable, 1 = enable 
    PlateDSPX1.PortControl(SET_VALUE_NOSAVE or VAL_STATUS_BAR, Tmp); 
 
    if OnOff > 0 then 
      OnOff := 0 
    else 
      OnOff := 1; 
 
    { connect #1 video capture card } 
    PlateDSPX1.VideoConnect(0); 
end; 
 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
    //capture bmp and recog continue 
    PlateDSPX1.CaptureBmp(-1); 
 
    //stop 
    //PlateDSPX1.CaptureBmp(0); 
end; 
 
end.