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多进程编程
Jun 12 Python
Django Highcharts制作图表
Aug 27 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
python打包成so文件过程解析
Sep 28 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
python中append函数用法讲解
Dec 11 Python
python实现b站直播自动发送弹幕功能
Feb 20 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使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
js弹出div并显示遮罩层
2014/02/12 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python简单文本处理的方法
2015/07/10 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python numpy格式化打印的实例
2018/05/14 Python
python re模块的高级用法详解
2018/06/06 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python实现微信表情包炸群功能
2021/01/28 Python
行政管理人员精品工作推荐信
2013/11/04 职场文书
高中生自我评价个人范文
2013/11/09 职场文书
工艺工程师工作职责
2013/11/23 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
运动会加油口号
2014/06/07 职场文书
基层党支部承诺书
2015/04/30 职场文书
音乐之声观后感
2015/06/04 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
python如何在word中存储本地图片
2021/04/07 Python
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android