ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 EH云课堂直播课程免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 35284|回复: 83

[原创] 在Excel中使用开源的Ocr引擎tesseract-ocr识别文字和验证码[20120718更新]

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-8 17:34 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:图像处理和GDI
本帖最后由 hhmxxx 于 2012-7-18 20:51 编辑

惠普实验室曾经有一个Ocr引擎,支持中文的识别,这个库叫tesseract-ocr,最新版本是3.01,库的源码在这里下载:http://code.google.com/p/tesseract-ocr/downloads/list

我把这个库封装成了一个进程外Com服务器,可以在Excel或者Word或者IE或者其他支持Com技术的程序中调用(32位或者64位的Excel,Word都可以调用)。

首先下载我的封装库,安装MyOcrServer-v100.exe,

安装完成后可以这样在Excel中使用
    Dim FMyFuns As Object
    Dim MyStr As String
    Set FMyFuns = CreateObject("MyOcrServer.MyOcrServerCom")
    MyStr = FMyFuns.TsOcr("E:\test.jpg", "3","3","0","chi_sim")
    MsgBox MyStr
    Set FMyFuns = Nothing
参数说明:第一个为文件名
第二个为引擎模式EngineMode = (emTesseractOnly, emCubeOnly, emCombined, emDefault);第一个为0,依此类推
第三个为PageSegmentation = (psOSDOnly, psAutoOSD, psAutoOnly, psAuto, psSingleColumn, psSingleVerticalBlock, psSingleBlock, psSingleLine, psSingleWord, psCircleWord, psSingleChar);
第四个为PixelFormat = (piAuto, pi8bit, pi24bit, pi32bit);
第五个为识别使用的语言模块,比如英文"eng",中文"chi_sim"
有兴趣的可以去试试。

封装库下载地址(谢谢liucqa2测试和上传):MyOcrServer-v100.exe




评分

参与人数 8财富 +50 鲜花 +16 技术 +1 收起 理由
纳铭m + 2 太强大了
horselyq + 2 优秀作品
YZC51 + 2 优秀作品
greener2008 + 2 优秀作品
msconfig98 + 2 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-7-8 17:38 | 显示全部楼层
本帖最后由 liucqa 于 2017-10-20 21:22 编辑

MyOcrServer-20140115 v3.03-988
http://pan.baidu.com/s/1b8BHdc
Tesseract 3.03 revision 988 进程外com服务器

Ocr示例.rar (20.09 KB, 下载次数: 1086)
未命名.jpg

tesseract Ocr COM加载宏 for Word.part03.rar

1.13 MB, 下载次数: 488

tesseract Ocr COM加载宏 for Word.part02.rar

1.13 MB, 下载次数: 459

tesseract Ocr COM加载宏 for Word.part01.rar

1.13 MB, 下载次数: 464

Tesseract 3.03 revision 919.rar

1.25 MB, 下载次数: 1213

评分

参与人数 1鲜花 +2 收起 理由
纳铭m + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-7-8 17:49 | 显示全部楼层
http://blog.csdn.net/xiaochunyong/article/details/7193744


Tesseract-OCR引擎 入门
分类: 杂七杂八 2012-01-11 16:10 2176人阅读 评论(0) 收藏 举报

OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布。当前版本为3.01.

项目地址为:http://code.google.com/p/tesseract-ocr


Windows 命令行使用Tesseract-OCR引擎识别验证码:

1、下载安装Tesseract-OCR引擎(3.0版本+才支持中文识别)

tesseract-ocr-setup-3.01-1.exe

下载完后进行安装,默认情况下安装程序会给你配置系统环境变量,以指向安装目录(之后可以通过DOS界面在任意目录运行tesseract)。安装完成后目录如下:

附录:

tessdata 目录存放的是语言字库文件,和在命令行界面中可能用到的参数所对应的文件.  这个安装程序默认包含了英文字库。

如果想能识别中文,可以到http://code.google.com/p/tesseract-ocr/downloads/list下载对应的语言的字库文件.

简体中文字库文件下载地址为:http://tesseract-ocr.googlecode.com/files/chi_sim.traineddata.gz 下载完成后解压,然后将该文件剪切到tessdata目录下去就可以了。


2、使用Tessract-OCR引擎识别验证码

打开DOS界面,输入tesseract:

如果出现如上输出,表示安装正常。
我准备了一张验证码code.jpg放在D盘根目录下,上图:


结果为:


附录:

Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
pagesegmode values are:
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
-l lang and/or -psm pagesegmode must occur before anyconfigfile.


tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

tesseract    图片名  输出文件名 -l 字库文件 -psd pagesegmode 配置文件

例如:

tesseract code.jpg result  -l chi_sim -psd 7 nobatch

-l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为  .raineddata 简体中文字库文件名为:  chi_sim.traineddata)

-psd 7 表示告诉tesseract code.jpg图片是一行文本  这个参数可以减少识别错误率.  默认为 3

configfile 参数值为tessdata\configs 和  tessdata\tessconfigs 目录下的文件名

TA的精华主题

TA的得分主题

发表于 2012-7-8 17:51 | 显示全部楼层
本帖最后由 liucqa 于 2012-7-8 20:03 编辑

http://sheng.iteye.com/blog/1330063

用VB调用Office OCR组件实现图文识别

    博客分类:
    技术文章(未分类)
    技术文章(.NET)
    技术文章(Delphi)
    技术文章(PowerBuilder)

Office OCR 图文识别 Microsoft Office Document Imaging

Option Explicit
'利用MS Office 2003/2007的OCR控件, 对图片进行OCR识别
'在VB中,只需要不到10行代码就能够实现自已的OCR文字识别软件.
'1. 添加控件,需要安装office2003, 没有安装office2003的可以从别人机子上拷贝相关文件,注册regsvr32.exe mdivwctl.dll,
'控件一般在这个目录下:C:\Program Files\Common Files\Microsoft Shared\MODI.0, 只需要相关的几个文件就可以了, 此文件夹全部文件大概在21M左右.
'2.工程->部件->添加这个控件:Microsoft Office Document Imaging 11.0 Type Library
'3.需要注意的一点是,在Windows2003 Server上,如果用Office自带的识别软件,会报错:
'  "在一页或多页上执行 OCR 不成功(未找到文本)"的错误,但用VB写的测试程序识别是正常的。

'OCR的主要功能
Private Function OCRImageFile(ByVal strImageFileName As String) As Boolean
    Dim miDoc As Object
     '初始化并加载文档
    Set miDoc = CreateObject("MODI.Document")           '创建对象
    miDoc.Create(strImageFileName)                      '加载图片文件
    Screen.MousePointer = vbHourglass                   '设置沙漏光标
    '识别
    Err.Clear
    miDoc.Images(0).OCR 2052, True, True
    Text1.Text = miDoc.Images(0).Layout.Text
    OCRImageFile = True
    Screen.MousePointer = vbArrow                       '恢复箭头光标
End Function

Private Sub cmdOCR_Click()
    Dim bolP As Boolean
    Dim strFileName as String
    strFileName = "c:\test.tif"
    bolP = OCRImageFile(strFileName)
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-8 17:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-7-8 18:35 | 显示全部楼层
本帖最后由 liucqa 于 2012-7-8 18:53 编辑

http://grunt1223.iteye.com/blog/904313

http://www.cnblogs.com/zcsor/archive/2011/02/21/1959555.html

TA的精华主题

TA的得分主题

发表于 2012-7-8 21:13 | 显示全部楼层
http://hooopo.iteye.com/blog/993538
用imagemagick和tesseract-ocr破解简单验证码

TA的精华主题

TA的得分主题

发表于 2012-7-8 21:55 | 显示全部楼层
楼主作品

Img2PDF xll加载宏.rar (478.18 KB, 下载次数: 392)

TA的精华主题

TA的得分主题

发表于 2012-7-8 22:11 | 显示全部楼层
楼主作品

MagXllLib圆形屏幕放大镜.rar (474.12 KB, 下载次数: 242)

TA的精华主题

TA的得分主题

发表于 2012-7-8 22:15 | 显示全部楼层
本帖最后由 liucqa 于 2012-7-8 22:15 编辑

楼主作品

谷歌多国文字互译
MyTransLib谷歌多国文字互译.rar (50.92 KB, 下载次数: 216)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2019-11-20 14:53 , Processed in 0.072843 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表