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实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
用Python编写web API的教程
Apr 30 Python
Python中的变量和作用域详解
Jul 13 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
记一次django内存异常排查及解决方法
Aug 07 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Python字典的基础操作
Nov 01 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
Terran历史背景
2020/03/14 星际争霸
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python解析json实例方法
2013/11/19 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
Python中new方法的详解
2019/01/15 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
使用python远程操作linux过程解析
2019/12/04 Python
YUV转为jpg图像的实现
2019/12/09 Python
举例讲解Python装饰器
2020/12/24 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
Linux操作面试题
2015/02/11 面试题
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
优秀教师主要事迹
2014/02/01 职场文书
铁路工务反思材料
2014/02/07 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
计划生育证明格式范本
2014/09/12 职场文书
Python中的套接字编程是什么?
2021/06/21 Python