包含vb.net图片文字识别的词条

VB窗口截图并将图片上文字识别成文字 。为何要采用截图功能去取窗口vb.net图片文字识别的句柄呢vb.net图片文字识别,可以用窗口标题去取句柄呀 。
VB.NET中怎么在图片上直接输出文字 。向VB中有Print的方法两种方法:
图片框上盖个Label 向其输入内容 。
载入图片 , 通过内存直接 DrawImage绘制个新图,然后在图上盖文字 。最后赋值给图片框 。
VB6的print 实质是向图片框打印文字 , 不管有无图都能在上面Print. 考虑速度和实现难度问题,如果纯粹显示,最好直接盖个Label最简单 。第二种方法 需要考虑文字大小、颜色、坐标定位等等 。如果一行文字显示不下,不会自动换行,得自己切 。
vb 如何识别 图片你的代码中Picture2有图片,Image1没图片,当然不会相等 。
Picture属性的值是句柄,每次调用LoadPicture函数,都生成新句柄 , 即使加载同一个文件,句柄也不同 。
要比较图片是否相同 , 应该事先定义图片 。
通用声明区定义图片变量:
Dim sp0, sp1, sp2
Form_Load()事件中把图片赋值(用Set):
Set sp0 = LoadPicture(App.Path + "\资源\灯座.jpg")
Set sp1 = LoadPicture(App.Path + "\资源\未亮的灯泡.jpg")
Set sp2 = LoadPicture(App.Path + "\资源\亮的灯泡.jpg")
Picture1.Picture = sp1
Picture2.Picture = sp0
以后加载图片,直接用变量,不再用LoadPicture函数,这样如果是同一个图片 , Picture属性就会相等了 。
vb编程识别图片中文字识别图片里文字的方法,通常称为OCR(Optical Character Recognition , 光学字符识别),需要利用非常复杂的模式识别算法才能实现 。自己用VB开发OCR程序工作量太大 。
可以考虑采用OCR插件,即在电脑上安装OCR控件,然后在VB程序中调用该控件 。如WPS,紫光、汉王的OCR系统都带有可调用的控件,但都比较大,而且有使用限制 。我曾经用过一个免费的91OCR控件,识别效果还马马虎虎可以 。
vb 部分截屏之后识别图片上的文字主要是先要将图片转换为字节数组
'存放格式为(*, *, *),从左下角开始:
'第一维:0-蓝色分量,1-绿色分量,2-红色分量,
'第二维:列;第三维:行
全部步骤如下
1、用DibGet获取图片数据
2、用ColorToBlackAndWhite(或ColorToGray+OtsuColorToBlackAndWhite)将图片数据转换为黑白数据
3、用DibPut将数据恢复到一个PictureBox中
4、截取各个数字到单独的PictureBox中
5、将数字图片转换为图片数据,并与标准数据(0-9)对比,相似度最高的为准(比如与1的相似度为75% , 与2的相似度为85% , 则此数字为2)
有问题Hi
'图像输出的过程:
Public Sub DIBPut(ByVal IdDestination As Long, ByRef ImageData() As Byte)
Dim LineBytes As Long
Dim Width As Long, Height As Long
Width = UBound(ImageData, 2) + 1
Height = UBound(ImageData, 3) + 1
On Error GoTo ErrLine
Done = False
With bi24BitInfo.bmiHeader
.biWidth = Width
.biHeight = Height
LineBytes = ((Width * Bits + 31) And HFFFFFFE0) \ 8
.biSizeImage = LineBytes * Height
End With
SetDIBitsToDevice IdDestination, 0, 0, Width, Height, 0, 0, 0, Height, ImageData(0, 0, 0), bi24BitInfo, 0
Done = True
Exit Sub
ErrLine:
MsgBox Err.Description
End Sub
'灰度处理SrcData(0 to 2, 0 to 宽度-1, 0 to 高度-1)
Public Sub ColorToGray(ByRef SrcData() As Byte, ByRef DestData() As Byte, _
Optional Left As Long = -1, Optional Top As Long = -1, _
Optional Right As Long = -1, Optional Bottom As Long = -1)
Dim i As Long, j As Long, k As Long
Dim red As Byte, green As Byte, blue As Byte

推荐阅读