如何使用Python进行OCR识别图片中的文字


Posted in Python onApril 01, 2019

朋友需要一个工具,将图片中的文字提取出来。我帮他在网上找了一些OCR的应用,都不好用。所以准备自己研究,写一个Web APP供他使用。

OCR1,全称Optical character recognition,或者optical character reader,中文译名叫做光学文字识别。它是把图像文件中的手写文本,打印文本转换为机器编码文本的一种方法。

OCR技术广泛用于识别打印纸张中的文字数据 -- 比如护照,支票,银行声明,收据,统计表单,邮件等。OCR的早期版本,需要对图片中的每个文字都进行训练,一次只能作用于一种字体。高级的版本增加了很大的识别率,可以同时识别现在很多流行的字体,支持不同种类格式的图片文件。一些系统可以生成接近于原来图片格式的输出,包括图片,排版,以及其它非文本组件,这也叫做版面还原。

工具

Tesseract

现在最出名,最常用的OCR就是谷歌的tesseract OCR engine2。最新的版本是Tesseract4。Tesseract的主要开发者是Ray Smith3.

Tesseract支持unicode(UTF-8),安装后即可识别超过100种语言。

Tesseract支持不同的输出可是:普通文本,hOCR(html),PDF,TSV,invisible-text-only PDF。在master分支,还试验性地支持ALTO(XML)格式。

请记住,在大多数情况下,为了获得更好的OCR结果,你需要为提供给Tesseract的图片提升质量4.

Tesseract可以通过训练来识别其它语言和其它字体5.

另外,有很多第三方的Tesseract GUI应用。可以直接下载使用6。

pytesseract

Python-tesseract7(pytesseract)是Google Tesseract ORC引擎的封装。首次commit的2014年。用这个库,可以很方便地编写脚本,可以用它来识别所有可以由PIL识别的图片格式,包括jpeg, png, gif, bmp, tiff等, 而tesseract-orc本来只支持tiff和bmp两种格式。

如果在脚本中使用,识别的文本可以输出为Python字符串,而不是直接输出到文件中。

另外,这个代码库只有一个文件,400行代码。如果有任何疑问,可以直接翻看源代码。

tesserocr

tesserocr8也是一个TesseractOCR的封装库。它的首次commit是2015年。

这个库相对于pytesseract的优势在于9,这个库是使用Cython来直接调用Tesseract的C++ API。使用它和threading模块来处理图片,可以释放GIL,达到正常的并发执行。

1.Wiki: OCR

2.Github: tesseract OCR engine

3.Tesseract作者 Ray Smith,美国计算机科学家,计算机图形学的先驱. 他的中文名字叫做匠白光. ↩

4.Wiki: 为Tesseract提升图片质量

5.Wiki: 训练Tesseract

6.Tesseract第三方GUI应用列表

7.Github: Python-tesseract

8.Github: tesserocr

9.Hacknews: 关于pytesseract, tesserocr的区别

总结

以上所述是小编给大家介绍的如何使用Python进行OCR识别图片中的文字,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
基于python实现名片管理系统
Nov 30 Python
Python操作json的方法实例分析
Dec 06 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
python与mysql数据库交互的实现
Jan 06 Python
Python中常见的数制转换有哪些
May 27 Python
python中id函数运行方式
Jul 03 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 #Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 #Python
详解python的argpare和click模块小结
Mar 31 #Python
linux安装python修改默认python版本方法
Mar 31 #Python
Django中使用Whoosh进行全文检索的方法
Mar 31 #Python
Python实现的爬取小说爬虫功能示例
Mar 30 #Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 #Python
You might like
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript常用的方法整理
2015/08/20 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
js正则相关知识点专题
2018/05/10 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
Python读取mp3中ID3信息的方法
2015/03/05 Python
详解python的数字类型变量与其方法
2016/11/20 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python里dict变成list实例方法
2019/06/26 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
学python需要去培训机构吗
2020/07/01 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
python 操作excel表格的方法
2020/12/05 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
python解包概念及实例
2021/02/17 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
大学活动邀请函
2014/01/28 职场文书
社团文化节策划书
2014/02/01 职场文书
学校四群教育实施方案
2014/06/12 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
大学军训决心书
2015/02/05 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
HTML基础详解(上)
2021/10/16 HTML / CSS