如何使用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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
python list元素为tuple时的排序方法
Apr 18 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
python给微信好友定时推送消息的示例
Feb 20 Python
Python中six模块基础用法
Dec 08 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
python scrapy简单模拟登录的代码分析
Jul 21 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
CI框架Session.php源码分析
2014/11/03 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
2015/07/01 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python 转义字符详细介绍
2017/03/21 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
正风肃纪剖析材料
2014/02/18 职场文书
《月迹》教学反思
2014/02/19 职场文书
大学活动总结格式
2014/04/29 职场文书
大学新闻系自荐书
2014/05/31 职场文书
学校交通安全责任书
2014/08/25 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
休假证明书
2015/06/24 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
Golang: 内建容器的用法
2021/05/05 Golang