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 相关文章推荐
基于ID3决策树算法的实现(Python版)
May 31 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
python中dict()的高级用法实现
Nov 13 Python
python flask中动态URL规则详解
Nov 22 Python
django admin 添加自定义链接方式
Mar 11 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
使用Django搭建网站实现商品分页功能
May 22 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
Python如何重新加载模块
Jul 29 Python
如何用Python 加密文件
Sep 10 Python
PyMongo 查询数据的实现
Jun 28 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
php结合飞信 免费天气预报短信
2009/05/07 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
js实现拖拽效果
2015/02/12 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python从入门到精通(DAY 3)
2015/12/20 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
python读取文件名并改名字的实例
2019/01/07 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
基于Python解密仿射密码
2019/10/21 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Python continue语句实例用法
2020/02/06 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
大学生旷课检讨书
2014/01/22 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
活着观后感
2015/06/03 职场文书
《圆的周长》教学反思
2016/02/17 职场文书