Python如何基于Tesseract实现识别文字功能


Posted in Python onJune 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实现识别文字功能

F:DE209_F>tesseract english.jpg text
Tesseract Open Source OCR Engine v4.00.00alpha with Leptonica
 
F:DE209_F>type text.txt
This is some text, written in Arial, that will be read by
Tesseract. Here are some symbols: !@#$%"&*()

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

通过Python代码实现

英文:

Python如何基于Tesseract实现识别文字功能

中文:

Python如何基于Tesseract实现识别文字功能

#!/usr/bin/python3
# -*- coding:utf-8 -*- 
import pytesseract
from PIL import Image
 
# 打开图像:英文
image = Image.open('english.jpg')
 
# OCR识别:lang默认英文
text = pytesseract.image_to_string(image)
 
# 打印识别后的文本
print(text)
 
# 我是分割线
print("*" * 30)
 
# 打开图像:英文
image = Image.open('china.png')
 
# OCR识别:lang指定中文
text = pytesseract.image_to_string(image, lang = 'chi_sim')
 
# 打印识别后的文本
print(text)

运行结果:

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

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

Python 相关文章推荐
python 参数列表中的self 显式不等于冗余
Dec 01 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python迭代和迭代器详解
Nov 10 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 Python
基于python内置函数与匿名函数详解
Jan 09 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
基于Python列表解析(列表推导式)
Jun 23 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 #Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 #Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 #Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 #Python
Python命名空间namespace及作用域原理解析
Jun 05 #Python
Python3内置函数chr和ord实现进制转换
Jun 05 #Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 #Python
You might like
一个显示天气预报的程序
2006/10/09 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
php实现的递归提成方案实例
2015/11/14 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python实现从wind导入数据
2019/12/03 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
python压包的概念及实例详解
2021/02/17 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
仓库文员岗位职责
2014/04/06 职场文书
《搭石》教学反思
2014/04/07 职场文书
超市客服工作职责
2014/06/11 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
单位介绍信格式范文
2015/05/04 职场文书
深度学习详解之初试机器学习
2021/04/14 Python