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 相关文章推荐
python3制作捧腹网段子页爬虫
Feb 12 Python
Python信息抽取之乱码解决办法
Jun 29 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
python清理子进程机制剖析
Nov 23 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
Python 转换文本编码实现解析
Aug 27 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
golang/python实现归并排序实例代码
Aug 30 Python
Python实现学生管理系统(面向对象版)
Jun 24 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通过COM使用ADODB的简单例子
2006/12/31 PHP
php 变量定义方法
2009/06/14 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
使用python绘制温度变化雷达图
2019/10/18 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python 爬虫的原理
2020/07/30 Python
Python 多进程原理及实现
2020/12/21 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
档案保密承诺书
2014/06/03 职场文书
主要负责人任命书
2014/06/06 职场文书
大学生交通专业求职信
2014/09/01 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
见习报告格式要求
2014/11/04 职场文书
投标承诺函范文
2015/01/21 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js