转载
http://www.blogbus.com/gleisure-logs/236198449.html
也是网上看到有人利用Microsoft Office的组件“Microsoft Office Document Imaging” (MODI)进行识别图片上的文本,于是我也测试了一下,果然可以。
测试环境:Windows XP,Microsoft Office 2003
我是在EXCEL的VBA环境下测试,引用“Microsoft Office Document Imaging 11.0 Type Library”,代码如下:
- Private Sub OCRImageFile(ByVal strName As String)
- Dim objDocument As New MODI.Document
- Dim objImage As New MODI.Image
- objDocument.Create strName
- Set objImage = objDocument.Images.Item(0)
- On Error Resume Next
- objImage.OCR miLANG_CHINESE_SIMPLIFIED, False, False //以中文模式识别
- If Err.Number = 0 Then
- MsgBox objImage.Layout.Text //显示识别的文本
- Else
- MsgBox Err.Description
- End If
- objDocument.Close False
- Set objDocument = Nothing
- End Sub
刚开始也与网上的评论一样,在代码第7行会出错“Object hasn't been initialized and can't be used yet”,事实上这是因为OCR组件MODI未完整安装。我是直接在开始菜单找到“Microsoft Office 工具”下的“Microsoft Office Document Imaging”程序,打开后测试一张图片进行识别,便会提示安装OCR功能。之后该错误便能消除。
对于一些图片提示错误“EP_E_DCOM_OCR_FAILRECOG”,应该是不能正常识别(或者未识别到文本)。