一个图片中,只有数字,如何识别(100分)

  • 主题发起人 主题发起人 buff
  • 开始时间 开始时间
B

buff

Unregistered / Unconfirmed
GUEST, unregistred user!
一个图片中,只有数,如何识别?
如:
[green]047[/green]

如何识别出为047呢?
 
前几个星期有朋友问过了!你可以找找
 
关键字是什么
 
请斑竹回答以下,我急
 
我有两个OCR代码,不过没研究过,需要的话留下妹儿
 
先谢谢了!
wm_999@sina.com
 
这个可以看看清华的 《模式识别》
 
nchan@163.net
 
用prewitt算子边缘检测效果较好
 


致:tseug
是否也可以给我发个OCR的源码。eboyniu@sina.com
 
to tseug 大佬
如果你给了OCR的源码,我做牛做马也行!!!
救命
 
哦.我忘了给地址了
xiao_pei2002@21cn.com
嘻嘻~~~不好意思
 
to,tseug :能否把你的OCR的源码发给小弟学习一下?[:D]
 
TO tseug;
我正在学习模式识别给我一分好吗。。。。。。。。。。。。
我想学习学习
。。。。。。。。。。。。。。。我的EMAIL:ASKXJ@SINA.COM
 
抄的,不有没有用
First,你所要的只是将已有的位图数据内容加上一个头信息,那很简单,利用
TBitmapFileHeader和TBitmapInfoHeader可以很容易填写头信息,然后,用
TMemoryStream,Seek(0,soFromBeginning),先把文件和信息头写进去,然后再
写数据,那就可以LoadFromStream.
Second,将图像画到Bitmap上去,未必要逐点赋值;即便要逐点赋值,也可以做得很
快,可以参考FastBmp的直接内存读写.
抄一段我写的有关的创建设备无关位图(DIB)直接内存读写点信息给你看:
...
const hSection = 0;
type
TFColor = record b,g,r:Byte end;
PFColor =^TFColor;
TLine = array[0..0]of TFColor;
PLine =^TLine;
TPLines = array[0..0]of PLine;
PPLines =^TPLines;
...
var
FFileHeader : TBitmapFileHeader;
FInfoHeader : TBitmapInfoHeader;
FInfo : TBitmapInfo;
FBits : Pointer;

Self.PixelFormat:=pf24bit; //设定你的Bitmap都为24位真彩,统一格式.

//Bitmap 文件头
with FFileHeader do
begin
bfType := $4D42;
bfSize := AWidth*AHeight*3+SizeOf(TBitmapFileHeader)+SizeOf(TBitmapInfoHeader);
bfReserved1 := 0;
bfReserved2 := 0;
bfOffBits := SizeOf(TBitmapFileHeader)+SizeOf(TBitmapInfoHeader);
end;

with FInfoHeader do
begin
biSize := SizeOf(TBitmapInfoHeader);
biWidth := AWidth;
biHeight := AHeight;
biPlanes := 1;
biBitCount := 24;
biCompression := BI_RGB;
biSizeImage := AWidth * AHeight * 3;
end;
FInfo.bmiHeader:=FInfoHeader;
FMyHandle:=CreateDIBSection(0,
FInfo,
DIB_RGB_COLORS,
FBits,
hSection,
0);
memDC:=GetDC(0);

GetDIBits(memDC,Self.Handle,0,AHeight,FBits,FInfo,DIB_RGB_COLORS);
ReleaseDC(memDC);
最重要是两个API,分别是创建一个内存DIB并给指针FBits分配内存,下一句则是
将该DIB的内容读入FBits所指的内存区域.以后的事就简单了,对每一个点,只要
让一个指针指向所需的内存区域:
GetMem(FPixels,AHeight * SizeOf(PLine)); //你自己定义的一个象素点指针
RowInc := (AWidth * 3 + AWidth mod 4); //每行都是4的整数倍个字节
XPointer := Integer(FBits);
for LoopI:=0 to AHeight - 1 do
begin
FPixels^[LoopI] := Pointer(XPointer);
Inc(XPointer,RowInc{ + AWidth mod 4});
end;
{下面这一段是为了让你可以用BitBlt和StretchBlt等直接对HDC进行图像操作
的API,也就是说可以象操作TCanvas那样进行操作,不过要记得,当所有的图像操作
完以后,要GdiFlush才能让对应的FBits内存刷新,切记切记 }
if FMyhDC<>0 then DeleteDC(FMyhDC);
FMyhDC:=CreateCompatibleDC(0);

SelectObject(FMyhDC,FMyHandle);
 
tseug
是否也可以给我发个OCR的源码。
谢谢!
SEAGO@963.NET
 
致:tseug
是否也可以给我发个OCR的源码。gaohuaigang@163.com
 
能否也给我发个OCR源码?vincent20@citiz.net
 
能否也给我发个OCR源码?
weasy2002@163.com
THX
 
后退
顶部