(*//
标题:简单的图象识别
声明:本贴只作为技术交流
设计:Zswang
日期:2003-09-09http://verify.tencent.com/getimage?0.13927358567975412
这是一个附加码~~先分析下
难点:
1.四个数字加上了一些随机的布点~~
2.背景和字体颜色也随机~~弱点:
1.数字大小一致,字体不会发生改变~~
2.只有两种颜色~~思路:
取得背景色和字体色比较容易,谁的点多就是背景~~
这里是用TBitmap::PixelFormat来处理成单色~~将标准的数字字体保存下来(就10个),作为比较的元素~~
把两个图象重叠~~
比较重叠前和重叠后是否发生变化~~
这样就可以避免随机布点的干扰~~话不多说,代码为例~~
//*)//RecogniseUnit.pas
unit RecogniseUnit;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ImgList, StdCtrls, OleCtrls, SHDocVw;type
  TFormRecognise = class(TForm)
    ImageList1: TImageList;
    ButtonRefresh: TButton;
    WebBrowser1: TWebBrowser;
    EditNumber: TEdit;
    procedure ButtonRefreshClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure WebBrowser1DownloadComplete(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  FormRecognise: TFormRecognise;implementation{$R *.dfm}uses Math; //use Math.Min()function SameCanvas(mCanvasA, mCanvasB: TCanvas): Boolean; { 比较两个画布是否相同 }
var
  I, J: Integer;
begin
  Result := False;
  if not Assigned(mCanvasA) then Exit;
  if not Assigned(mCanvasB) then Exit;
  for I := Min(mCanvasA.ClipRect.Left, mCanvasB.ClipRect.Left) to
    Min(mCanvasA.ClipRect.Right, mCanvasB.ClipRect.Right) do
    for J := Min(mCanvasA.ClipRect.Top, mCanvasB.ClipRect.Top) to
      Min(mCanvasA.ClipRect.Bottom, mCanvasB.ClipRect.Bottom) do
      if mCanvasA.Pixels[I, J] <> mCanvasB.Pixels[I, J] then Exit;
  Result := True;
end; { SameCanvas }procedure TFormRecognise.ButtonRefreshClick(Sender: TObject);
begin
  TButton(Sender).Enabled := False;
  WebBrowser1.Refresh;
end;procedure TFormRecognise.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('http://verify.tencent.com/getimage?0.8539209923422657');
end;procedure TFormRecognise.WebBrowser1DownloadComplete(Sender: TObject);
  procedure fNumBitmap(mHandle: THandle; mIndex: Integer; mBitmap: TBitmap);
  var
    vDC: HDC;
  begin
    vDC := GetDC(mHandle);
    try
      mBitmap.Assign(nil);
      mBitmap.Width := 5;
      mBitmap.Height := 8;
      BitBlt(mBitmap.Canvas.Handle, 0, 0, mBitmap.Width, mBitmap.Height, vDC,
        17 + 6 * mIndex, 18, SRCCOPY);
      mBitmap.PixelFormat := pf8bit;
      mBitmap.PixelFormat := pf1bit;
    finally
      DeleteDC(vDC);
    end;
  end;  function fGetNum(mHandle: THandle; mIndex: Integer): Integer;
  var
    I: Integer;
    vBitmapA: TBitmap;
    vBitmapB: TBitmap;
  begin
    Result := -1;
    vBitmapA := TBitmap.Create;
    vBitmapB := TBitmap.Create;
    fNumBitmap(mHandle, mIndex, vBitmapA);
    vBitmapB.Width := vBitmapA.Width;
    vBitmapB.Height := vBitmapA.Height;
    for I := 9 downto 0 do begin //8会覆盖3的基础码,所以反循环
      vBitmapB.Canvas.Draw(0, 0, vBitmapA);
      ImageList1.Draw(vBitmapB.Canvas, 0, 0, I);
      vBitmapB.PixelFormat := pf8bit;
      vBitmapB.PixelFormat := pf1bit;
      if SameCanvas(vBitmapA.Canvas, vBitmapB.Canvas) then begin
        Result := I;
        Exit;
      end;
    end;
    vBitmapA.Free;
    vBitmapB.Free;
  end;
var
  S: string;
  I: Integer;
begin
  Application.ProcessMessages;
  S := '';
  for I := 0 to 3 do S := S + IntToStr(fGetNum(WebBrowser1.Handle, I));
  EditNumber.Text := S;
  ButtonRefresh.Enabled := True;
end;end.

解决方案 »

  1.   

    //RecogniseUnit.dfm
    object FormRecognise: TFormRecognise
      Left = 369
      Top = 273
      Width = 174
      Height = 88
      Caption = 'FormRecognise'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object ButtonRefresh: TButton
        Left = 89
        Top = 35
        Width = 75
        Height = 25
        Caption = 'Refresh'
        TabOrder = 0
        OnClick = ButtonRefreshClick
      end
      object WebBrowser1: TWebBrowser
        Left = 0
        Top = 0
        Width = 165
        Height = 34
        TabOrder = 1
        OnDownloadComplete = WebBrowser1DownloadComplete
        ControlData = {
          4C0000000E110000840300000000000000000000000000000000000000000000
          000000004C000000000000000000000001000000E0D057007335CF11AE690800
          2B2E126208000000000000004C0000000114020000000000C000000000000046
          8000000000000000000000000000000000000000000000000000000000000000
          00000000000000000100000000000000000000000000000000000000}
      end
      object EditNumber: TEdit
        Left = 3
        Top = 37
        Width = 86
        Height = 21
        Color = clSilver
        TabOrder = 2
      end
      object ImageList1: TImageList
        Height = 8
        Width = 5
        Left = 127
        Bitmap = {
          494C01010A000E00040005000800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
          0000000000003600000028000000140000002000000001001000000000000005
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          000000000000000000000000000000000000424D3E000000000000003E000000
          2800000014000000200000000100010000000000800000000000000000000000
          000000000000000000000000FFFFFF0000000000000000000000000000000000
          0000000000000000000000000000000088C00000774000007780000074000000
          8B80000073800000738000008C400000EC637000EB9D7000079DB0006F9DB000
          6B83D000A85FD000CBEFE000E8300000D8011000AEDEE00076EFE00076F7E000
          76FB900072FDE000ACDCE000DEE3100000000000000000000000000000000000
          000000000000}
      end
    end
      

  2.   

    收藏 hehe^^ 伴水MM好长时间没有见了 哈哈哈
      

  3.   

    to 伴水BitBlt(mBitmap.Canvas.Handle, 0, 0, mBitmap.Width, mBitmap.Height, vDC,17 + 6 * mIndex, 18, SRCCOPY);这里面的坐标不会是你一点点试的吧?? :)
      

  4.   

    我还想问楼主一个问题  ^^! 你最近在做什么方面的开发?还有zdcnow(磁效应) 你收藏的给大家看看?! :)
    看了伴水的这个贴子,我想到了.....汉字的识别 哈哈哈 同理呀 我先做个例子....同志们等会呀
      

  5.   

    “这里面的坐标不会是你一点点试的吧?? :)”to CDSoftwareWj:
    革命就需要你这样的人,能够把面扩展开,星星之火可以燎原~~
    定位就是用附件里的画笔,放大、移动、定位就ok了~~
      

  6.   

    伴水有问题,大家也帮我试试 hehe^^ 比较菜想不通怎么比的不对看看我的程序//Unit1.pas
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls, jpeg, ImgList;type
      TCrackPanel = class(TPanel);  TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Panel1: TPanel;
        Panel2: TPanel;
        Button2: TButton;
        Edit2: TEdit;
        ImageList1: TImageList;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}uses Math; //use Math.Min()procedure TForm1.Button1Click(Sender: TObject);
    var
      Bmp: TBitmap;
      i: Integer;
    begin
      Bmp := TBitmap.Create;
      Bmp.Width := Width;
      Bmp.Height := Form1.Height;
      Bmp.Canvas.Brush.Color := clBtnFace;
      SetBKMode(Bmp.Canvas.Handle, TRANSPARENT);
      Bmp.Canvas.TextOut(0, 0, Edit1.Text);
      for i := 0 to Bmp.Width - 1 do
        TCrackPanel(Panel1).Canvas.CopyRect(Rect(0,0,i,Bmp.Height),Bmp.Canvas,Rect(0,0,i,Bmp.Height));
      Bmp.Free;
    end;function SameCanvas(mCanvasA, mCanvasB: TCanvas): Boolean; { 比较两个画布是否相同 }
    var
      I, J: Integer;
    begin
      Result := False;
      if not Assigned(mCanvasA) then Exit;
      if not Assigned(mCanvasB) then Exit;
      for I := Min(mCanvasA.ClipRect.Left, mCanvasB.ClipRect.Left) to
        Min(mCanvasA.ClipRect.Right, mCanvasB.ClipRect.Right) do
        for J := Min(mCanvasA.ClipRect.Top, mCanvasB.ClipRect.Top) to
          Min(mCanvasA.ClipRect.Bottom, mCanvasB.ClipRect.Bottom) do
          if mCanvasA.Pixels[I, J] <> mCanvasB.Pixels[I, J] then Exit;
      Result := True;
    end; { SameCanvas }procedure TForm1.Button2Click(Sender: TObject);
    var
      vBitmapA: TBitmap;
    begin
      vBitmapA := TBitmap.Create;
      vBitmapA.Width := 16;
      vBitmapA.Height := 16;
      ImageList1.GetBitmap(0, vBitmapA);
      vBitmapA.PixelFormat := pf8bit;
      vBitmapA.PixelFormat := pf1bit;
      if SameCanvas(vBitmapA.Canvas, TCrackPanel(Panel1).Canvas) then
        Edit2.Text := '你输入的是个"王"字我没有错吧 哇哈哈哈哈'
      else
        Edit2.Text := '你输入的这是个什么呀 ^^!';
      vBitmapA.Free;
    end;end.
      

  7.   

    //Form1.dfm
    object Form1: TForm1
      Left = 192
      Top = 107
      Width = 419
      Height = 161
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 40
        Top = 92
        Width = 75
        Height = 25
        Caption = '生成图像'
        TabOrder = 0
        OnClick = Button1Click
      end
      object Edit1: TEdit
        Left = 16
        Top = 56
        Width = 121
        Height = 21
        TabOrder = 1
      end
      object Panel1: TPanel
        Left = 60
        Top = 24
        Width = 16
        Height = 16
        TabOrder = 2
      end
      object Panel2: TPanel
        Left = 288
        Top = 20
        Width = 16
        Height = 16
        TabOrder = 3
      end
      object Button2: TButton
        Left = 268
        Top = 92
        Width = 75
        Height = 25
        Caption = '识别'
        TabOrder = 4
        OnClick = Button2Click
      end
      object Edit2: TEdit
        Left = 204
        Top = 56
        Width = 189
        Height = 21
        TabOrder = 5
      end
      object ImageList1: TImageList
        Left = 364
        Top = 16
        Bitmap = {
          494C010101000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
          0000000000003600000028000000400000001000000001001000000000000008
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
          000000000000000000000000000000000000424D3E000000000000003E000000
          2800000040000000100000000100010000000000800000000000000000000000
          000000000000000000000000FFFFFF00FFFF000000000000FFFF000000000000
          FFFF000000000000800F000000000000FDFF000000000000FDFF000000000000
          FDFF000000000000FDFF000000000000C01F000000000000FDFF000000000000
          FDFF000000000000FDFF000000000000C01F000000000000FFBF000000000000
          FFFF000000000000FFFF00000000000000000000000000000000000000000000
          000000000000}
      end
    end
      

  8.   

    //基础码有些偏移,也可以不用ImageList直接TextOut输出到画布~~  ImageList1.GetBitmap(0, vBitmapA);
    //  vBitmapA.PixelFormat := pf8bit;
    //  vBitmapA.PixelFormat := pf1bit; //这两条没用了object ImageList1: TImageList
      Left = 364
      Top = 16
      Bitmap = {
        494C010101000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
        0000000000003600000028000000400000001000000001001000000000000008
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        000000000000000000000000000000000000424D3E000000000000003E000000
        2800000040000000100000000100010000000000800000000000000000000000
        000000000000000000000000FFFFFF00FFFF000000000000FFFF000000000000
        FFFF000000000000FFFF000000000000001F000000000000FBFF000000000000
        FBFF000000000000FBFF000000000000FBFF000000000000803F000000000000
        FBFF000000000000FBFF000000000000FBFF000000000000803F000000000000
        FF7F000000000000FFFF000000000000}
    end
      

  9.   

    程序我以经调过去了1. 像你说的那点//  vBitmapA.PixelFormat := pf8bit;
    //  vBitmapA.PixelFormat := pf1bit; //这两条没用了2. 
      //Bmp.Canvas.TextOut(0, 0, Edit1.Text); // 以前的
      Bmp.Canvas.TextOut(1, 1, Edit1.Text);  //改成这样就可以了 ^^!就差这么两点程序就过去了
      

  10.   

    //基础码有些偏移不过好多地方都不可能这么合适的,有什么好的办法呢?还有就是要做真正的汉字识别或车牌识别,怎样去“搜索”基础码呢??总不会一个个挨着找吧 hehe^^
      

  11.   

    //基础码有些偏移不过好多地方都不可能这么合适的,有什么好的办法呢?还有就是要做真正的汉字识别或车牌识别,怎样去“搜索”基础码呢??总不会一个个挨着找吧 hehe^^
      

  12.   

    哎,伴水,能不能借着你的这个帖子,结我(我们^^)讲讲有关车牌识别的知识点公式是不是很复杂?我以前在搞一个北京交管项目时对这种识别很感兴趣只要车辆一过就能把车牌内容识别出来,只不过处理(反应)速度还不太好讲讲思路也行呀  ^^!  大不了再开帖子给你3分 HoHo~~~
      

  13.   

    就是就是,
    老大很久没有出手了,
    hehe
      

  14.   

    步骤
    Step.1 图像预处理
      对动态采集到的图像进行滤波、边界增强等处理,以克服图像干扰,改善识别效果。 
    Step.2 车牌的定位
      在动态采集到的图像中,自动找到车牌的位置。 
    Step.3 字符分割
      在车牌图像上,自动提取单个字符的图像。 
    Step.4 字符识别
      在每个字符图像中识别出字符文字。 这是汉王眼的介绍~~
    http://www.hw99.com/product/prodview.asp?proid=090102to CDSoftwareWj: 
    车牌识别你是做过D~~
    我是没有做过D~~
    拿我开涮呀?~~
      

  15.   

    我只是看过D~~~~做法只是想想D~~~~做是做不出来D~~~~没有拿你开涮啊 哈哈哈 ^^!
      

  16.   

    zswang(伴水清清)(专家门诊清洁工) 另开一贴好不好,太长了!