#2
iswith2023-08-29 11:29
|
网上发现一段代码,可以进行简单的图文识别,可以识别黑白的文字,彩色的好像不行。。。
我发现可以用来识别车牌,但是不完善。
奉上代码:
*!* ***********************************************************************
*!* 功能: 使用 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里的函数,是不是这样理解啊?