方法1:利用我们常用的聊天通讯工具QQ

使用方法:先随便选择一个好友发送该图片,然后点击图片发大查看,然后长按识别,就会对应弹出选项“提取图中文字”选择即可。

方法2:微软office中的OneNote软件即可

使用方法:把要提取文字的图片插入OneNote中,然后右击,选择复制图片中的文字即可,然后粘贴到其他文档中就ok了。

方法3:使用微信小程序

使用方法:直接微信中搜索图片文字识别小程序,然后打开上传有文字的图片即可。

Tesseract ,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。

源码地址为: https://github.com/tesseract-ocr/tesseract ;

EXE可执行文件地址: http://download.csdn.net/download/whatday/7740469 ;

接下来,我们将在Windows环境下安装Tesseract并实现简单的转换和训练:

1、Tesseract实现

大体流程:Tesseract安装 -> 打开命令行 -> 生成目标文件

Tesseract安装

下载tesseract-ocr-setup-3.02.02.exe安装包,安装成功后会在相应磁盘下有Tesseract-OCR文件夹,如图

打开命令行

打开命令行,输入tesseract,回车;以下便是tesseract的大体面貌:

生成目标文件

先准备一张图片文件,如test.png

将命令行切换至目标图像文件目录,比如我们转换文件为test.png(图片文件允许多种格式),位于C:\Users\Lian\Desktop\test;然后在命令行中输入

tesseract test.png output_1 –l eng

【语法】:  tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]

imagename为目标图片文件名,需加格式后缀;outputbase是转换结果文件名;lang是语言名称(在Tesseract-OCR中tessdata文件夹可看到以eng开头的语言文件eng.traineddata),如不标-l eng则默认为eng。

打开文件output_1.txt,发现tesseract成功的将图像转换成 152408

可喜可贺,说明老牌名将tesseract还是很强的!但是还是有点不够准确,那么我们有没有什么办法能提高tesseract识别字符准确率呢?接下来,我们将使用配套训练工具 jTessBoxEditor 来训练样本,来提高我们的准确率!

2、Tesseract训练:

大体流程为:安装jTessBoxEditor -> 获取样本文件 -> Merge样本文件 –> 生成BOX文件 -> 定义字符配置文件 -> 字符矫正 -> 执行批处理文件 -> 将生成的traineddata放入tessdata中

安装jTessBoxEditor

下载jTessBoxEditor,地址 https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/ ;解压后得到jTessBoxEditor,由于这是由Java开发的,所以我们应该确保在运行jTessBoxEditor前先安装 JRE (Java Runtime Environment,Java运行环境)。

获取样本文件

我们可以用画图工具绘制样本文件,数量越多越好,我自己画了5张图,如图:

【注意】:样本图像文件格式必须为tif\tiff格式,否则在Merge样本文件的过程中会出现 Couldn’t Seek 的错误。

Merge样本文件

打开jTessBoxEditor,Tools->Merge TIFF,将样本文件全部选上,并将合并文件保存为num.font.exp0.tif

生成BOX文件

打开命令行并切换至num.font.exp0.tif所在目录,输入,生成文件名为num.font.exp0.box

tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox

【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox  

lang为语言名称,fontname为字体名称,num为序号;在tesseract中,一定要注意格式。

定义字符配置文件

在目标文件夹内生成一个名为font_properties的文本文件,内容为

font 0 0 0 0 0

【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur>  

fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。

字符矫正

打开jTessBoxEditor,BOX Editor -> Open,打开num.font.exp0.tif; 矫正<Char>上的字符,记得<Page>有好多页噢!

修改后记得保存。

执行批处理文件

在目标目录下生成一个批处理文件

-F font_properties -U unicharset -& pause

保存后执行即可,执行结果如图:

最终文件夹内会有以下文件,如图:

将生成的traineddata放入tessdata中

最后将num.trainddata复制到Tesseract-OCR中tessdata文件夹即可。

3、最后的测试

按照之前步骤,使用命令行输入

tesseract test.png output_2 -l num

我们可以看到新生成的文件output_2的内容为 762408 ,内容完全正确。细心的人会发现,最后一句指令,我们使用了指令[-l num]而不是[-l eng]。这说明,最后一次转换我们使用的是新生成的num语言的匹配库而不是默认的eng语言匹配库。

Tesseract-OCR识别中文与训练字库实例

关于中文的识别,效果比较好而且开源的应该就是Tesseract-OCR了,所以自己亲身试用一下,分享到博客让有同样兴趣的人少走弯路。

文中所用到的身份证图片资源是百度找的,如有侵权可联系我删除。

一、准备工作

1、下载Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安装就行。

2、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面。

3、下载jTessBoxEditor,这个是用来训练字库的。

以上的几个在百度都能找到下载,就不详细讲了。

二、识别

1、进入cmd,进入到要识别的图片的路径下。

2、输入命令

1
tesseract 图片名称 生成的结果文件的名称 字库

例如我的图片识别就是:

1
tesseract test.jpg result -l chi_sim

识别完后会生成result.txt文件

当然啦效果不太理想。所以我们要训练自己的字库。

三、训练

1、将图片转换成tif格式,用于后面生成box文件。可以通过画图,然后另存为tif即可。

更改图片名字,这个是有要求的=。=

tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言 fontname是字体 
比如我们要训练自定义字库 mjorcen字体名normal
那么我们把图片文件重命名 mjorcen.normal.exp0.jpg在转tif。

2、生成box文件。

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox

box文件和对应的tif一定要在相同的目录下,不然后面打不开。

3、打开jTessBoxEditor矫正错误并训练

打开train.bat

找到tif图,打开,并校正。

4、训练。

只要在命令行输入命令即可。

1
tesseract  mjorcen.normal.exp0.jpg mjorcen.normal.exp0  nobatch box.train
1
unicharset_extractor mjorcen.normal.exp0.box

在这我明明已经矫正好了,但是还是有1个字符不能识别出来,报的错跟实际上完全没有相关性,不知道是不是bug,到后面的结果就是“园”字没有识别出来。

先不管,毕竟只有一个样本。

新建一个font_properties文件

里面内容写入 normal 0 0 0 0 0 表示默认普通字体

继续敲命令

1
2
3
4
5
6
7
8
9
shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr
mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr
cntraining mjorcen.normal.exp0.tr

最后会生成五个文件,把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上normal.

如图:

命令行输入,合并五个文件:

1
combine_tessdata normal.

得到训练好的字库。

四、测试

1、把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中

2、识别命令:

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l normal

3、效果

对比:

总结:肯定要自己训练过后的字库识别效果好,接下来要把整个项目弄进android,还要研究怎么将多个字库合并成一个字库,因为我不可能一次训练完所有的图片文字的。到时候有什么成果了再分享博文。希望大家可以点赞!谢谢。

更新:没有错误的话命令行的提示应该是这样的



About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub( http://blog.itpub.net/26736162 )、博客园( http://www.cnblogs.com/lhrbest )和个人weixin公众号( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群号: 230161599 (满) 、618766405

● weixin群:可加我weixin,我拉大家进群,非诚勿扰

● 联系我请加QQ好友 ( 646634621 ) ,注明添加缘由

● 于 2018-12-01 06:00 ~ 2018-12-31 24:00 在魔都完成

● 最新修改时间:2018-12-01 06:00 ~ 2018-12-31 24:00

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

● 小麦苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 小麦苗出版的数据库类丛书 : http://blog.itpub.net/26736162/viewspace-2142121/

● 小麦苗OCP、OCM、高可用网络班 : http://blog.itpub.net/26736162/viewspace-2148098/

● 小麦苗腾讯课堂主页 : https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客户端 扫描下面的二维码来关注小麦苗的weixin公众号( xiaomaimiaolhr )及QQ群(DBA宝典)、添加小麦苗weixin, 学习最实用的数据库技术。

........................................................................................................................

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2285595/,如需转载,请注明出处,否则将追究法律责任。

Tesseract-OCR的使用---提取图片中的文字(OneNote)相关推荐

  1. 基于Tesseract模块Python实现提取图片中的文字信息(安装+使用教程)

    Python实现提取图片中的文字可以使用Optical Character Recognition (OCR) 技术来解决.OCR是指将图像中的文本转换成可编辑的文本的过程.Python有许多OCR库 ...

  2. VBA批量OCR识别提取身份证照片信息_手机扫描仪:直装就是VIP,不限次数,一秒钟就能提取图片中的文字...

    之前神器妹在神器精选公众号分享过v4.4.5修改版以及更老的版本,本次神器妹分享的是最新v4.6.4修改版(11月16日更新):直装就是VIP,不限次数,一秒钟就能提取图片中的文字. 可扫描识别身份证 ...

  3. python调用qq识别图片文字_Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解...

    百度OCR体验地址: 腾讯OCR体验地址: 测试结果是:腾讯的效果要比百度的好 腾讯云目前额度是: 每个接口 1,000次/月免费,有6个文字识别的接口,一共是6,000次/月 百度接口调用之前写过文 ...

  4. 在线工具:电脑怎么提取图片中的文字?图片如何转化为文字?

    电脑怎么提取图片中的文字? 图片记录着我们生活的点点滴滴,比如各种办公截图.查快递单号.布置的课堂作业等等,都离不开这种便捷的方法.而我们有时难免需要从图片中提取想要的文字,总不能就靠打字打到手软吧, ...

  5. 【Microsoft Office Document Imaging 2007】提取图片中的文字

    使用Microsoft Office 2007工具里的程序:Microsoft Office Document Imaging提取图片中的文字 一.首先查看自己是否安装了Microsoft Offic ...

  6. 电脑怎么提取图片中的文字?

    图片记录着我们生活的点点滴滴,比如各种办公截图.查快递单号.布置的课堂作业等等,都离不开这种便捷的方法.而我们有时难免需要从图片中提取想要的文字,总不能就靠打字打到手软吧,那么电脑怎么提取图片中的文字 ...

  7. 教你如何提取图片中的文字?

    在生活中,我们经常会拍这样那样的照片,比如课堂总结要点.会议总结等等,而不少图片中的内容是我们需要的,这让我们不得不把图片中的文字提取出来,变成文字.以便于我们后续的使用.当然了,如果是那种纯文字图片 ...

  8. 提取图片中的文字怎么做?这几种简单方法别错过

    图片中的文字怎么提取出来?图片中的文字需要手动输入或复制粘贴到其他文档中,而通过提取文字,可以节省用户的时间和劳动力.用户可以使用提取文字功能,快速地将图片中的文字提取出来,并且避免手动输入或复制粘贴 ...

  9. 如何简单的提取图片中的文字

    如何简单的提取图片中的文字呢?随着互联网技术的不断发展,信息获取的媒介.渠道在增多,相信很多人都习惯在电脑上或是手机上进行快阅读.而随着人们阅读习惯的变化,人们现在也习惯与用手机截图来记录一些自己喜欢 ...

  10. java获取emf中的文字_一键提取图片中的文字的5种方法!

    工作中经常会需要提取图片中的文字的时候,一个个打字实在是太累人了,又浪 费时间.我们就借助一些工具,帮助我们高效地工作吧! papa 分享一个很小巧的 PC 端的文字识别软件 - 天若OCR ,Ta ...

最新文章

  1. 2021-08-29概率论—第四章随机变量的数字特征
  2. SpringBoot整合Spring Security
  3. 游戏行业的人工智能设计(二):路径搜寻和感知
  4. cmd长ping记录日志和时间_四个网络命令ping、arp、tracert、route的详细用法
  5. junit测试线程_一个在自己的线程中运行测试的JUnit规则
  6. SQLAlchemy 多条件查询
  7. orcal 工具能连接上 程序连接不上_电脑无线网络连接不上怎么办
  8. 关于EasyUI在Datagrid里面将某一列设置为超链接并传递当前行的某一参数传递给打开的对话框。
  9. 360怎么看电脑配置_电脑配置清单速查表-AMD
  10. 基于SSM的Java图书管理系统
  11. 诺顿企业版 V11.0
  12. Latex 制作表格
  13. 修改服务器配额有什么坏处,云服务器配额调整
  14. linux cab文件怎么安装包,IE控件cab包手动安装
  15. 使用python画出简易的滑稽表情
  16. 一种通用的Qt数据库接口操作方法
  17. JAVA学习(三)----常量和数据类型
  18. 汇聚优质AR应用开发者,技术助力AR领域繁荣生态
  19. linux查看文件内容常用命令
  20. 记录chrome 浏览器 本地ip 地址报 CORS 错误

热门文章

  1. Give up sending metadata request since no node is available
  2. 计算机存在其他连接设备错误,USB设备连接电脑失败怎么办
  3. 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
  4. python处理excel的时间格式_Python处理Excel使用pandas处理时间格式数据
  5. 选中exchange缓存模式后 GAL不会更新
  6. Python运维开发(CMDB资产管理系统)——环境部署(下)
  7. 智能驾驶看湘江:中国智能网联汽车产业的“长沙样本”
  8. 实验七 12 小数化分数
  9. 微信公众平台开发接口配置URL index.php和token
  10. python3 规则引擎_Ilog、Drools、Jess规则引擎的Rule Language 对比