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共享引用(多个变量引用)示例代码
Dec 04 Python
python生成器表达式和列表解析
Mar 10 Python
Python中join函数简单代码示例
Jan 09 Python
python微信公众号之关键词自动回复
Jun 15 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
Python tkinter模版代码实例
Feb 05 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
python中time包实例详解
Feb 02 Python
python3 hdf5文件 遍历代码
May 19 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
Search Engine Friendly的URL设计
2006/10/09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
基于jquery的表格排序
2010/09/11 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
详解python之简单主机批量管理工具
2017/01/27 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
高中生毕业自我鉴定
2013/10/10 职场文书
中专生学习生活的自我评价分享
2013/10/27 职场文书
半年思想汇报
2013/12/30 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers