python批量识别图片中文字_Python识别图片中的文字
一、前言
不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是当我们想用到里面的文字时,还是要一个字一个字打出来。那么我们能不能直接识别图片中的文字呢?答案是肯定的。
二、Tesseract
文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别。但是在此之前我们需要完成一个繁琐的工作。
(1)Tesseract的安装及配置
有很多版本供大家选择,大家可以根据自己的需求选择。其中w32表示32位系统,w64表示64位系统,大家选择合适的版本即可,可能下载速度比较慢,大家可以选择链接:https://pan.baidu.com/s/1jKZe_ACLQCVXiCmvHj9adw 提取码:ayel下载。安装时我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,我们路径是D:\CodeField\Tesseract-OCR。
我们右击我的电脑/此电脑->属性->高级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定,这样才算配置好了。
(2)下载语言包
Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包,下载地址如下:https://tesseract-ocr.github.io/tessdoc/Data-Files,进入网站后我们往下翻:
其中有两个中文语言包,一个Chinese-Simplified和Chinese-Traditional,它们分别是简体中文和繁体中文,我们选择需要的下载即可。下载完成后我们需要放到Tesseract的路径下的tessdata目录下,我们路径是D:\CodeField\Tesseract-OCR\tessdata。
(3)其它模块下载
除了上面的步骤,我们还需要下载两个模块:
pip install pytesseract
pip install pillow
第一个是用于文字识别的,第二个是用于图片读取的。接下来我们就可以进行文字识别了。
三、文字识别
(1)单张图片识别
接下来的操作就要简单的多,下面是我们要识别的图片:
接下来就是我们文字识别的代码:
import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.jpg')
# 识别文字
string = pytesseract.image_to_string(im)
print(string)
识别结果如下:
Do not go gentle into that good night!
因为默认是支持英文的,所以我们可以直接识别,但是当我们要识别中文或其它语言时就需要做些修改:
import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.png')
# 识别文字,并指定语言
string = pytesseract.image_to_string(im, lang='chi_sim')
print(string)
在识别时,我们设置lang='chi_sim',也就是把语言设置为简体中文,只有当你的tessdata目录下有简体中文包该设置才会生效。下面是我们用来识别的图片:
识别结果如下:
不 要 温 顺 的 走 进 那 个 良 夜
图片内容被准确识别出来了。有一点我们需要知道,在我们将语言设置为简体中文或其它语言后,Tesseract还是可以识别出英文字符。
(2)批量图片识别
既然我们把单张图片识别列出来了,就肯定还有批量图片识别这个功能,这就需要我们准备一个txt文件了,比如我有text.txt文件,内容如下:
sentence1.jpg
sentence2.jpg
我们将代码修改为如下:
import pytesseract
# 识别文字
string = pytesseract.image_to_string('text.txt', lang='chi_sim')
print(string)
但是这样自己写一个txt文件难免有些麻烦,因此我们又可以进行如下修改:
import os
import pytesseract
# 文字图片的路径
path = 'text_img/'
# 获取图片路径列表
imgs = [path + i for i in os.listdir(path)]
# 打开文件
f = open('text.txt', 'w+', encoding='utf-8')
# 将各个图片的路径写入text.txt文件当中
for img in imgs:
f.write(img + '\n')
# 关闭文件
f.close()
# 文字识别
string = pytesseract.image_to_string('text.txt', lang='chi_sim')
print(string)
这样我们只需要传入一个文字图片的根目录就可以批量进行识别了。在测试过程中发现,Tesseract对手写体、行楷等飘逸的字体识别不准确,对一些复杂的字识别也有待提升。但是宋体、印刷体等笔画严谨的字体识别准确率很高。另外如果图片的倾斜大于一定的角度,识别结果也会有很大差别。更多内容可以关注公众号:ZackSock。
python批量识别图片中文字_Python识别图片中的文字相关推荐
- python文本筛选多个word_用Python批量替换多个Word文件中的文字
实例14:用Python批量替换多个Word文件中的文字 公众号"Python操作Office软件高效工作" 29 人赞同了该文章 我们在实例7中批量生成了采购合同.但是假设现在我 ...
- word批量替换多组文字 python_实例14:用Python批量替换多个Word文件中的文字
我们在实例7中批量生成了采购合同.但是假设现在我方的公司名由"ABC商贸有限公司"变成了"ABC贸易有限公司",那我们就需要去每份合同中对应位置进行替换.当然也 ...
- python批量识别图片中文字_python实现中文图片文字识别--OCR about chinese text--tesseract...
0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: 自带了英文语言包, ...
- python识别汉字笔画_Python识别图片中的文字
Python识别图片中的文字 一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截 ...
- cmd删除txt部分文字_Python识别图片中的文字
一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...
- python截图识别文字_Python技术:截图文字识别工具
#01 截图文字识别工具 有时候在海报上面,图片上面,或者PDF文档中,经常出现一些唯美的文字.这个时候想要复制下来才发现不能复制.因为有的是图片,有的是PDF. 可以使用Python制作一个小工具, ...
- python识别图片上的文字_python识别图片文字
因为学校要求要刷一门叫<包装世界>的网课,而课程里有200多道选择题,而且只能在手机完成,网页版无法做题,而看视频是不可能看视频的,这辈子都不可能看...所以写了几行代码来进行百度搜答案. ...
- python批量处理图片颜色反转_Python批量处理图片
1.Pillow库介绍 Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显示.格式转换以及基本的图像处理操作等: 安装 pip inst ...
- python输入文字如何定义文字_python如何实现手动输入文字
Python中可以使用input()函数接收用户输入的文字. 函数语法:input([prompt]) 参数说明:prompt: 提示信息 示例:>>>a = input(" ...
最新文章
- python的源代码文件的扩展名是-python源文件后缀是什么
- java项目包创建顺序_java程序初始化的顺序
- html 手机a标签点不动,htmlunit单击javascript a标签不起作用
- 26行代码AC_试题 历届试题 日期问题 | 第八届蓝桥杯B组第七题
- 程序员特有的9个坏习惯
- 【设计模式】命令模式
- 使用JUnit规则测试预期的异常
- 三年白干!程序员因违反《竞业协议》赔偿腾讯97.6万元,返还15.8万元
- svn merger的时候 报远程主机强迫_SVN与Git比较(二)版本库与工作区
- 第一章 WebGL简介 Introduction
- 微软社区大课堂 - Transform the Datacenter (数据迁移与Windows Server )社区巡讲- 北京站...
- Kisssoft软件在行星齿轮设计上的初试
- Ubuntu22 超nice的QQ(Icalingua++)安装步骤,拒绝走弯路!!
- 小学五年级计算机课评课,小学生信息技术课《复制与变换》评课稿
- 简化为“圆弧-直线”的侧方停车路径
- linux系统路由器地址查询,查找路由器登录IP地址指南
- 数据结构C语言之停车场管理
- 汽车功能安全ISO 26262介绍
- 常用向量空间距离计算的几种方法
- 写给自己看的C4D建模笔记
热门文章
- Go For It.
- 如何批量复制文件名到excel?
- 数据包络分析--两阶段加性网络DEA--使用优化黄金分割比例算法(第一篇)
- 区块链助力人道主义援助
- 关于网民结构调整的一些思考
- 用matplotlib绘制十字星光标
- [深度学习概念]·word2vec原理讲解Negative Sampling的模型概述
- 出现ERROR: While executing gem ... (Gem::FilePermissionError)这种错误的解决办法
- 数据库原理 西安电子科技大学(第三版) 付婷婷 第三章 课后习题答案
- CTF-Reverse | .re文件求flag-x64Elf-100