Delphi中一简单图像比较例
2009-11-26 13:30
190 查看
unit MainFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; TextWidth, TextHeight : Integer; TmpWidth, TmpHeight : Integer; Temp : Integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Temp := 1021; Image1.Canvas.TextOut( 0, 0, '0810212334' ); TextWidth := Image1.Canvas.TextWidth ( '0810212334' ); TextHeight := Image1.Canvas.TextHeight ( '0810212334' ); Image2.Canvas.TextOut ( 0, 0, IntToStr ( Temp ) ); TmpWidth := Image2.Canvas.TextWidth ( IntToStr ( Temp ) ); TmpHeight := Image2.Canvas.TextHeight ( IntToStr ( Temp ) ); end; procedure TForm1.Button2Click(Sender: TObject); var TempStr : String; i, j, k : Integer; Flag : boolean; TmpColor : DWORD; Mark : Integer; OldColorPtr : PByteArray; TmpColorPtr : PByteArray; begin Mark := 0; for i := 0 to TmpHeight - 1 do begin OldColorPtr := Image1.Picture.Bitmap.ScanLine [ i ]; TmpColorPtr := Image2.Picture.Bitmap.ScanLine [ i ]; Flag := true; j := Mark; while j < TextWidth do begin for k := 0 to TmpWidth do begin if OldColorPtr [j + k] <> TmpColorPtr[k] then begin Flag := false; break; end; end; inc ( j ); end; if Flag and ( (j - k) > 0 ) then Mark := j - k else Mark := 0; end; if Flag then ShowMessage ( 'Find the text at + IntToStr (Mark - TmpWidth + 1) + ',0'); Image1.Canvas.Pen.Color := RGB ( $FF, $00, $00 ); Image1.Canvas.Brush.Style := bsClear; Image1.Canvas.Rectangle( Mark - TmpWidth + 1, 0, Mark, TmpHeight ); end; end.
相关文章推荐
- [转载]图像处理中各种边缘检测的微分算子简单比较
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- Canvas合成图像 比较简单 看代码和demo
- 32位图像处理库 delphi简单实现(转贴)
- 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT。
- Delphi简单的图像编程
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- Canvas合成图像 比较简单 看代码和demo
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
- Python OpenCV 简单图像比较
- [转]图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert,Priwitt,Laplacian,Canny)
- 四种比较简单的图像显著性区域特征提取方法原理及实现
- 比较简单的日历签到(没有第三方框架)
- 图像处理之简单脸谱检测算法(Simple Face Detection Algorithm)