Python通过Tesseract库实现文字识别
作者:骑着螞蟻流浪 发布时间:2023-02-28 13:29:46
机器视觉
从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代码实现
英文:
中文:
运行结果
This is some text, written in Arial, that will be read by
Tesseract. Here are some symbols: !@#$%"&*()
******************************
中 华 人 民 共 和 国
来源:https://www.cnblogs.com/mayi0312/p/7233209.html


猜你喜欢
- SELECT (case when a.colorder=1 then d.name else '
- 一段基于OpenCV2的代码。作用是从摄像头获取帧并将帧写入指定的视频文件中。需要注意的是,视频文件所在的路径需要存在,例如D:/image
- 解决方案在安装包的路径的../database/state/cvu/cvu_prereq.xml文件尾部添加如下:<OPERATING
- 四年前写的一个内容管理系统,应用在公司内部网上,昨天DBA说其中的SQL语句未使用参数化的调用,导致服务器负担加重,资源占用大。并列出了几个
- 前言一个函数就可以接收另一个函数作为参数,简言之,函数的参数能够接收别的函数,这种函数就称之为高阶函数JavaScript 的高阶函数跟 S
- 操作步骤:一、安装MySQL数据库1、下载MySQL-5.6.17-winx64.zip文件。2、解压到指定目录,本例为D:\mysql-5
- 自定义函数参数传递为 字符串格式 ,传递方式1:用this传递 2:引号缺省 3:转义字符(html中 " 代表"
- 依赖模块xlwt下载:pip install xlwt后台模块view.py# 导出Excel文件def export_excel(requ
- 什么是拼音转换在我们学习语言之前,我们一般会学习拼音来认识汉字,并学会如何读汉字。所以,拼音在对于我们语言的重要性不言而喻。而拼音转换指的是
- 操作系统:macOS High Sierra 10.13.3Python3.6因为此版本自带python2.7,就下载并安装了anacond
- python纵向合并任意多个图片,files是要拼接的文件list# -*- coding:utf-8 -*-def mergeReport
- LSMT层可以在troch.nn模块中找到LSTM类lstm = torch.nn.LSTM(*paramsters)1、__init__方
- 平时我们获取事件对象一般写法如下:function getEvent(event) { return event
- 一、条件语句条件语句能够改变Python程序的执行流程,是执行这个代码块还是另一个代码块。凡是需要判断来确定下一步如何执行的程序都要使用条件
- 代码如下: <!--[if IE 6]><script type="text/javascript"&
- Python将控制台输出另存为日志文件需求  在 PyCharm 中或者说运行 python 程序时会使
- 过拟合问题实战1.构建数据集我们使用的数据集样本特性向量长度为 2,标签为 0 或 1,分别代表了 2 种类别。借助于 scikit-lea
- UPDATE语句的速度更新查询的优化同SELECT查询一样,需要额外的写开销。写速度依赖于更新的数据大小和更新的索引的数量。没有更改的索引不
- 网上关于tensorflow模型文件ckpt格式转pb文件的帖子很多,本人几乎尝试了所有方法,最后终于成功了,现总结如下。方法无外乎下面两种
- 综述本系列文档用于对Python爬虫技术进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了。Python 版本