Python图像处理之图片文字识别功能(OCR)


Posted in Python onJuly 30, 2019

OCR与Tesseract介绍

将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。

Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源OCR 系统。

了极高的精确度,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体(只要这些字体的风格保持不变就可以),也可以识别出任何Unicode 字符。

Tesseract的安装与使用

Tesseract的Windows安装包下载地址为: http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe  ,下载后双击直接安装即可。安装完后,需要将Tesseract添加到系统变量中。在CMD中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。

Python图像处理之图片文字识别功能(OCR) 

Linux 用户可以通过apt-get 安装:

$sudo apt-get tesseract-ocr

用Tesseract可以识别格式规范的文字,主要具有以下特点:

• 使用一个标准字体(不包含手写体、草书,或者十分“花哨的”字体)
• 虽然被复印或拍照,字体还是很清晰,没有多余的痕迹或污点
• 排列整齐,没有歪歪斜斜的字
• 没有超出图片范围,也没有残缺不全,或紧紧贴在图片的边缘

下面将给出几个tesseract识别图片中文字的例子。

首先是E://figures/other/poems.jpg, 输入命令 tesseract E://figures/other/poems.jpg E://figures/other/poems.txt, 则会将poems.jpg中的识别文字写入到poems.txt中,如下图:

Python图像处理之图片文字识别功能(OCR)
Python图像处理之图片文字识别功能(OCR)
Python图像处理之图片文字识别功能(OCR) 

接着是稍微有点倾斜的文字图片th.jpg,识别情况如下:

Python图像处理之图片文字识别功能(OCR)
Python图像处理之图片文字识别功能(OCR) 

可以看到识别的情况不如刚才规范字体的好,但是也能识别图片中的大部分字母。
最后是识别简体中文,需要事先安装简体中文语言包,下载地址为: https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata   ,再讲chi_sim.traineddata放在C:\Program Files (x86)\Tesseract-OCR\tessdata目录下。我们以图片timg.jpg为例:

Python图像处理之图片文字识别功能(OCR) 

输入命令:

tesseract E://figures/other/timg.jpg E://figures/other/timg.txt -l chi_sim

识别结果如下:

Python图像处理之图片文字识别功能(OCR) 

只识别错了一个字,识别率还是不错的。

最后加一句,Tesseract对于彩色图片的识别效果没有黑白图片的效果好。

pytesseract

pytesseract是Tesseract关于Python的接口,可以使用pip install pytesseract安装。安装完后,就可以使用Python调用Tesseract了,不过,你还需要一个Python的图片处理模块,可以安装pillow.

输入以下代码,可以实现同上述Tesseract命令一样的效果:

import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = 'C://Program Files (x86)/Tesseract-OCR/tesseract.exe'
text = pytesseract.image_to_string(Image.open('E://figures/other/poems.jpg'))
print(text)

运行结果如下:

Python图像处理之图片文字识别功能(OCR)

总结

以上所述是小编给大家介绍的Python图像处理之图片文字识别功能(OCR),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python进阶教程之动态类型详解
Aug 30 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python 的类、继承和多态详解
Jul 16 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
python求加权平均值的实例(附纯python写法)
Aug 22 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
python随机模块random的22种函数(小结)
May 15 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 #Python
python join方法使用详解
Jul 30 #Python
python实现屏保程序(适用于背单词)
Jul 30 #Python
python实现各种插值法(数值分析)
Jul 30 #Python
Django 通过JS实现ajax过程详解
Jul 30 #Python
django 微信网页授权认证api的步骤详解
Jul 30 #Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 #Python
You might like
PHP句法规则详解 入门学习
2011/11/09 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
Gird组件 Part-3:范例RSSFeed Viewer
2007/03/10 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
JS简单计算器实例
2015/01/20 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
python 类详解及简单实例
2017/03/24 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python定时任务sched模块用法示例
2018/07/16 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
大二自我鉴定范文
2013/10/05 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
初中英语教学随笔
2015/08/15 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Python经常使用的一些内置函数
2022/04/11 Python