注册 登录
编程论坛 VFP论坛

使用 Microsoft Office Document Imaging 2003 提供的 OCR 功能实现车牌识别

sam_jiang 发布于 2023-08-29 11:12, 624 次点击
网上发现一段代码,可以进行简单的图文识别,可以识别黑白的文字,彩色的好像不行。。。

我发现可以用来识别车牌,但是不完善。

奉上代码:
*!* ***********************************************************************
*!* 功能: 使用 Microsoft Office Document Imaging 2003 提供的 OCR 功能
*!*       实现简单的 OCR 识别。
*!* 作者: dkfdtf  - 2007.07.01
*!* ***********************************************************************
LOCAL oMiDoc, cFile

TRY
    oMiDoc = Createobject('MODI.Document')
CATCH
    oMiDoc = NULL
ENDTRY
IF ISNULL( oMiDoc )
    MESSAGEBOX( '没有安装 Office 2003/2007 吧 !?' )
ELSE
    oMyProg = NEWOBJECT( 'MyProg' )         && 创建自己的 OCR 识别进度显示
    EVENTHANDLER( oMiDoc, oMyProg )         && 绑定到 oMiDoc 这个 COM 对象上
   
    m.cFile = GETFILE( 'bmp;gif;jpg;png;tif')
    IF !EMPTY( m.cFile )
        oMidoc.Create( m.cFile )
        ShowStatus(0)
        oMidoc.OCR( 2052 )            && 按简体中文来识别
        WAIT CLEAR
        CLEAR
        ? oMiDoc.Images(0).Layout.text
      
    ENDIF
    oMiDoc.Close()
    RELEASE oMiDoc
ENDIF

FUNCTION ShowStatus( tnVal )
    WAIT WINDOW AT SROWS()/2, SCOLS()/2-20 ;
        NOWAIT '  正在识别, 已完成 ' + TRANSFORM( m.tnVal ) + '%  '
ENDFUNC

*!* COM 事件接口实现
DEFINE CLASS MyProg AS Session OLEPUBLIC
*!* IMPLEMENTS _IDocumentEvents IN "c:/program files/common files/microsoft shared/modi/11.0/mdivwctl.dll"
    IMPLEMENTS _IDocumentEvents IN "C:\Program Files (x86)\Common Files\Microsoft Shared\MODI\12.0\mdivwctl.dll"
*!*        IMPLEMENTS _IDocumentEvents IN "mdivwctl.dll"
   
    PROCEDURE _IDocumentEvents_OnOCRProgress( Progress AS Integer, Cancel AS LOGICAL @ ) AS VOID ;
        HELPSTRING "method OnOCRProgress"
        ShowStatus( Progress )
    ENDPROC
ENDDEFINE

*!* 前提是你电脑上得安装了Microsoft Office Document Imaging

这个implements关键词好像很厉害啊,vfp帮助里找不到这个关键词的说明,有谁知道可否出来详细说明一下?
感觉不用declare就可以使用dll里的函数,是不是这样理解啊?
8 回复
#2
iswith2023-08-29 11:29
你这代码可以使用?
#3
sam_jiang2023-08-29 11:32
回复 2楼 iswith
亲自验证,可以使用,昨天还特地去下载了Microsoft Office Document Imaging。。。
#4
iswith2023-08-29 11:39
implements关键词逻辑就是把COM发布出来的Events的事件绑定到VFP类的方法,以方法回调事件,其实就是回调
#5
iswith2023-08-29 11:45
但大多数回调都是传指针,所以MYFLL了有一个构造PRG函数指针,如何实现逻辑我也清楚的!但VFP9r.DLL就一个线程,这类回调说实话实际意义不大,就现在把VFP9r.dll改成多线,稳定性也不好!如果涉及到多线用c#简单又高效。但如果有涉及到VFP的函数构造类,也可以直接在C#调用VFP的COM DLL性能还不错。
#6
sam_jiang2023-08-29 12:31
记得vfp的对象浏览器可以查看ocx,dll的函数,参数列表的,我这vfp9最近好像看不了了,打开对象浏览器就要我安装什么东西。。。
#7
iswith2023-08-29 12:50
是的!其实你可以使用VS 的对象浏览器来查看COM+这样容易些!VFP对象浏览器太弱了!
#8
iswith2023-08-29 12:51
话说回来OCR识别不是很好!目前我看别人都是用OpenVC你研究这个,别研究OCR。
#9
dengsheng2024-11-27 16:48
可以先处理图片为灰度再识别
1