Python通过Tesseract库实现文字识别


Posted in Python onMarch 05, 2020

机器视觉

从Google的无人驾驶汽车到可以识别假钞的自动售卖机,机器视觉一直都是一个应用广泛且具有深远的影响和雄伟的愿景的领域。

这里我们将重点介绍机器视觉的一个分支:文字识别。介绍如何用一些Python库来识别和使用在线图片中的文字。

我们可以很轻松的阅读图片里的文字,但是机器阅读这些图片就会非常困难,利用这种人类用户可以正常读取但是大多数存贮器没法读取的图片,这时验证码(CAPTCHA)就出现了。验证码读取的难易程序也大不相同。

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

OCR库概述

在读取和处理图像、图像相差的机器学习以及创建图像等任务中,Python一直都是非常出色的语言。虽然有很多库可以进行图像处理,但是这里我们只介绍Tesseract库。

Tesseract

Tesseract是一个OCR库,目前由Google赞助。Tesseract是目前公认最优秀、最精确的开源OCR系统。除了极高的精确度,Tesseract也具有很高的灵活性。它可以通过训练识别出任何字体,也可以识别出任何Unicode字符。

安装Tesseract:Windows系统

下载可执行安装文件安装即可。

安装pytesseract

Tesseract是一个Python的命令行工具,不是通过import语句导入的库。安装之后,要用tesseract命令在Python的外面运行,但我们可以通过pip安装支持Python版本的Tesseract库:

pip install pytesseract

处理规范的文字

你要处理的大多数文字都是比较干净、格式规范的。格式霍英东的文字通常具有以下特点:

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

文字的一些格式问题在图片预处理时可以进行解决。例如,可以把图片转换成灰度图,调整亮度和对比度,还可以根据需要进行裁剪和旋转,在这里不作介绍。

示例:

英文:

Python通过Tesseract库实现文字识别

识别结果的准确率还是挺高的。

通过Python代码实现

英文:

Python通过Tesseract库实现文字识别

中文:

Python通过Tesseract库实现文字识别

运行结果

This is some text, written in Arial, that will be read by
Tesseract. Here are some symbols: !@#$%"&*()
******************************
中 华 人 民 共 和 国

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
Python简单定义与使用字典dict的方法示例
Jul 25 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
python操作yaml说明
Apr 08 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
PyQt5实现画布小程序
May 30 Python
Python新手学习装饰器
Jun 04 Python
Opencv求取连通区域重心实例
Jun 04 Python
python右对齐的实例方法
Jul 05 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
Python爬虫实现模拟点击动态页面
Mar 05 #Python
python实现图片横向和纵向拼接
Mar 05 #Python
基于Python生成个性二维码过程详解
Mar 05 #Python
Python callable内置函数原理解析
Mar 05 #Python
python实现图像拼接
Mar 05 #Python
Python求两个字符串最长公共子序列代码实例
Mar 05 #Python
Python操作MongoDb数据库流程详解
Mar 05 #Python
You might like
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
js自带函数备忘 数组
2006/12/29 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Saltstack快速入门简单汇总
2016/03/01 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python用input输入列表的实例代码
2020/02/07 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
小学中秋节活动方案
2014/02/06 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
决心书范文
2014/03/11 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
学风建设主题班会
2015/08/17 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python