⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 Delphi的车牌识别程序源码
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, DB, ADODB, ActnList, ExtDlgs,
  DBActns, Jpeg, DBCtrls, Grids, DBGrids, ComCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    OpenDialog: TOpenDialog;
    ActionList: TActionList;
    ADOConnection: TADOConnection;
    SavePictureDialog: TSavePictureDialog;
    ADODataSetPic: TADODataSet;
    DSPic: TDataSource;
    BitBtn5: TBitBtn;
    DataSetPrior1: TDataSetPrior;
    DataSetNext1: TDataSetNext;
    BitBtn6: TBitBtn;
    DataSetPost1: TDataSetPost;
    DBImage1: TDBImage;
    DataSetDelete1: TDataSetDelete;
    DBGrid1: TDBGrid;
    DataSetInsert1: TDataSetInsert;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    StatusBar1: TStatusBar;
    Label1: TLabel;
    Image1: TImage;
    Image2: TImage;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DSPicDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

const
  Digits : array[0..$F] of Char = '0123456789ABCDEF';

implementation

{$R *.dfm}

function HexB(B : Byte) : string;
  {-Return hex string for byte}
begin
  //HexB[0] := #2;
  //HexB[1] := Digits[B shr 4];
  //HexB[2] := Digits[B and $F];
  //Delphi5将上三行改为:
  HexB:=Digits[B shr 4]+Digits[B and $F];
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  str:String;
begin
  if ADOConnection.Connected then
    ADOConnection.Connected :=false;
  str:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+
  'Data Source='+ExtractFilePath(ParamStr(0))+'picdata.mdb;'+
  'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";'+
  'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+
  'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;'+
  'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;'+
  'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;'+
  'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'+
  'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
  ADOConnection.ConnectionString :=str;
  try
    ADOConnection.Connected :=true;
    ADODataSetPic.Active :=true;
  except
    ShowMessage('找不到数据库文件!');
    Application.Terminate;
  end;
end;

procedure TForm1.BitBtn7Click(Sender: TObject);
var
  st: TStringStream;
  Str : String;
  Jpeg1 : TJPEGIMAGE;
  bmp:TBitmap;
begin
  if OpenDialog.Execute then
  begin
    bmp:=TBitmap.Create;
    Str := ExtractFileExt(OpenDialog.filename);
    Str := Copy(Str,2,3);
    if Str='bmp' then
      bmp.LoadFromFile(OpenDialog.FileName)
    else if Str='jpg' then
    begin
      Jpeg1 := TJPEGIMAGE.Create;
      Jpeg1.LoadFromFile(OpenDialog.FileName);
      bmp.Assign(Jpeg1);
    end;
    st := tstringstream.Create('');
    bmp.SaveToStream(st);
    ADODataSetPic.Edit;
    ADODataSetPic.FieldByName('PicData').AsString:= st.datastring;
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
    B:TBitmap;
    J:TJPEGImage;
    Str:String;
begin
    if OpenDialog.Execute then
    Str := ExtractFileExt(OpenDialog.filename);
    Str := Copy(Str,2,3);
    if Str='bmp' then
      Image1.Picture.LoadFromFile(OpenDialog.FileName)
    else if Str='jpg' then
    begin
        B:=TBitmap.Create;
        J:=TJPEGImage.Create;
        J.LoadFromFile(OpenDialog.FileName);
        B.Assign(J);
        Image1.Picture.Bitmap:=B;
        B.Free;
        J.Free;
    end;
end;

procedure TForm1.BitBtn8Click(Sender: TObject);
var
    x1,y1:Integer;
    x2,y2:Integer;
    x3,y3:Integer;
    x4,y4:Integer;
    r,g,b: byte;
    t: tcolor;
begin
    x1:=10;
    y1:=10;
    x2:=50;
    y2:=50;
    x3:=150;
    y3:=150;
    
    t :=Image1.canvas.pixels[x1,y1];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL1.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    t :=Image1.canvas.pixels[x2,y2];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL7.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    t :=Image1.canvas.pixels[x3,y3];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL10.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    t :=Image2.canvas.pixels[x1,y1];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL2.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    t :=Image2.canvas.pixels[x2,y2];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL8.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    t :=Image2.canvas.pixels[x3,y3];
    r := getRvalue(t);
    g := getGvalue(t);
    b := getBvalue(t);
    LABEL11.CAPTION := HEXB(R) + HEXB(G) + HEXB(B);

    if (Label1.Caption = Label2.Caption) and (Label7.Caption = Label8.Caption) and (Label10.Caption = Label11.Caption) then
    begin
        Label12.Caption:='OK';
        Label13.Caption:='OK';
        Label14.Caption:='OK';
        StatusBar1.Panels[0].Text:='检索成功!';
    end
    else
    begin
        if BitBtn3.Enabled then
        begin
            BitBtn3.Click;
            BitBtn8.Click;
        end
        else
        begin
            Label12.Caption:='';
            Label13.Caption:='';
            Label14.Caption:='';
            StatusBar1.Panels[0].Text:='检索失败!';
            Abort;
        end;
    end;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
    B:TBitmap;
    J:TJPEGImage;
begin
    B:=TBitmap.Create;
    J:=TJPEGImage.Create;
    DBImage1.Picture.Bitmap.SaveToFile('Temp.bmp');
    Image2.Picture.Bitmap.LoadFromFile('Temp.bmp');
end;

procedure TForm1.DSPicDataChange(Sender: TObject; Field: TField);
var
    B:TBitmap;
    J:TJPEGImage;
begin
    B:=TBitmap.Create;
    J:=TJPEGImage.Create;
    DBImage1.Picture.Bitmap.SaveToFile('Temp.bmp');
    Image2.Picture.Bitmap.LoadFromFile('Temp.bmp');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -