以文本方式查看主题

-  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,【如下图错误,怎么解决呢?】


此主题相关图片如下:12.png
按此在新窗口浏览图片


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:mdivwctl.dll.rar


控件一般在这个目录下: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



然后运行如下代码会报错:


此主题相关图片如下:22.png
按此在新窗口浏览图片

上述代码怎么能够分别修正使用在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中如何操作啊?

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看
楼上的那调用并注册DLL也没有成功   

目前操作系统是window7 64位  安装的是office2007

--  作者:有点甜
--  发布时间:2017/11/1 15:37:00
--  

参考代码

 

Dim doc = CreateObject("MODI.Document") 
doc.Create("d:\\test.jpg")
doc.OCR(2052, True, True)
Dim layout = doc.images(0).Layout
msgbox(layout.text)


--  作者:有点甜
--  发布时间: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就出错了 没有成功 求解啊  
楼上的参考代码也是需要先解决如下两个问题了才能测试吧!


我已经复制在foxtable安装目录下了的   且已经检查了对应的目录下有这个文件dll

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

--  作者:李孝春
--  发布时间:2017/11/1 15:52:00
--  回复:(有点甜)识别文字,现在基本都是调用api的,如...
因为是在内部网操作,所以不可能调用网络上的api,还得麻烦有点甜老师多多指导啊
工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library【这个部分在FOXTABLE中该如何操作呢?】

图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看
对应在FOXTABLE中如何操作呢?

--  作者:有点甜
--  发布时间:2017/11/1 16:56:00
--  

 安装好office,打好补丁。

 

 直接执行这个代码即可

 

Dim doc = CreateObject("MODI.Document") 
doc.Create("d:\\test.jpg")
doc.OCR(2052, True, True)
Dim layout = doc.images(0).Layout
msgbox(layout.text)


--  作者:jyh7081
--  发布时间:2017/11/1 22:37:00
--  

在试用版可以运行,在开发版报错:

 


图片点击可在新窗口打开查看此主题相关图片如下:image 7.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/11/1 22:53:00
--  

 不应该。试用版,可以识别出文字了吗?重复运行有没问题?

 

 开发版的话,基本是一样的没有区别,我测试可以。