以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【ocr识别】VB实现OCR文字识别,怎么进行转化为foxtable程序代码呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108960) |
||||
-- 作者:李孝春 -- 发布时间:2017/11/1 14:50:00 -- 【ocr识别】VB实现OCR文字识别,怎么进行转化为foxtable程序代码呢? 下面是网上文章及代码 怎么修改代码实现FOXTABLE实现识别呢? VB实现OCR文字识别 原理: 利用微软OCR控件, 只需要不到10行代码就能够实现自已的OCR文字识别软件. 1. 添加控件,需要安装office2003,
没有安装office2003的可以从别人机子上拷贝相关文件,注册regsvr32.exe mdivwctl.dll,【如下图错误,怎么解决呢?】
控件一般在这个目录下:C:\\Program Files\\Common Files\\Microsoft Shared\\MODI\\11.0, 只需要相关的几个文件就可以了, 此文件夹全部文件大概在21M左右. 工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library【这个部分在FOXTABLE中该如何操作呢?】 2.在按钮的Click事件里: 代码1:
Dim strLayoutInfo As String, strLPN As String
\'初始化并加载文档 Set miDoc =
CreateObject("MODI.Document") \'创建对象
miDoc.Create "D:\\未命名.jpg"
\'加载图片文件
Screen.MousePointer = vbHourglass \'设置光标忙 \'识别
miDoc.Images(0).OCR miLANG_CHINESE_SIMPLIFIED, True, True \'有用的就此一句,识别为中文简体
Set modiLayout = miDoc.Images(0).Layout \'读出数据
strLayoutInfo = _
"Language: " & modiLayout.Language & vbCrLf & _
"Number of characters: " & modiLayout.NumChars &
vbCrLf & _
"Number of fonts: " & modiLayout.NumFonts & vbCrLf
& _
"Number of words: " & modiLayout.NumWords & vbCrLf
& _
"Beginning of text: " & Left(modiLayout.Text, 50) &
vbCrLf & _
"First word of text: " & modiLayout.Words(0).Text
MsgBox strLayoutInfo, vbInformation + vbOKOnly, "Layout
Information"
Set modiLayout = Nothing
Set miDoc = Nothing
Screen.MousePointer = vbDefault 代码二: Option Explicit \'OCR的主要功能 Private Function OCRImageFile(ByVal strName As String) As Boolean Dim modiDocument As New MODI.Document Dim modiImages As New MODI.Images Dim modiImage As New MODI.Image Dim modiLayout As New MODI.Layout Dim ImageCount As Integer
Dim i As Integer
modiDocument.OCR miLANG_CHINESE_SIMPLIFIED, False, False Set modiImage = modiDocument.Images
For i = 0 To ImageCount Set modiImage = modiImages.Item(i) Set modiLayout = modiImage.Layout Text1.Text = modiLayout.Text Next i
modiDocument.Close False: Set modiDocument = Nothing
If ImageCount > 0 Then OCRImageFile = True Else OCRImageFile = False End If
End Function 然后运行如下代码会报错: 上述代码怎么能够分别修正使用在foxtable中呢? [此贴子已经被作者于2017/11/1 16:07:37编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 15:26:00 -- 参考
http://www.cnblogs.com/stone_w/archive/2011/10/08/2202397.html
|
||||
-- 作者:李孝春 -- 发布时间:2017/11/1 15:34:00 -- 回复:(有点甜)参考 http://www.cnblogs.c... 如图的东西 在foxtable中如何操作啊? 目前操作系统是window7 64位 安装的是office2007
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 15:37:00 -- 参考代码
Dim doc = CreateObject("MODI.Document") |
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 15:38:00 -- 识别文字,现在基本都是调用api的,如
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=106768&authorid=0&page=0&star=2
|
||||
-- 作者:李孝春 -- 发布时间:2017/11/1 15:49:00 -- 回复:(有点甜)参考代码 Dim doc = Create... 现在第一步DLL就出错了 没有成功 求解啊 楼上的参考代码也是需要先解决如下两个问题了才能测试吧!
|
||||
-- 作者:李孝春 -- 发布时间:2017/11/1 15:52:00 -- 回复:(有点甜)识别文字,现在基本都是调用api的,如... 因为是在内部网操作,所以不可能调用网络上的api,还得麻烦有点甜老师多多指导啊 工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library【这个部分在FOXTABLE中该如何操作呢?】
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 16:56:00 -- 安装好office,打好补丁。
直接执行这个代码即可
Dim doc = CreateObject("MODI.Document") |
||||
-- 作者:jyh7081 -- 发布时间:2017/11/1 22:37:00 -- 在试用版可以运行,在开发版报错:
此主题相关图片如下:image 7.jpg |
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 22:53:00 -- 不应该。试用版,可以识别出文字了吗?重复运行有没问题?
开发版的话,基本是一样的没有区别,我测试可以。 |