如何利⽤Python识别图⽚中的⽂字
⼀、前⾔
不知道⼤家有没有遇到过这样的问题,就是在某个软件或者某个⽹页⾥⾯有⼀篇⽂章,你⾮常喜欢,但是不能复制。或者像百度⽂档⼀样,只能复制⼀部分,这个时候我们就会选择截图保存。但是当我们想⽤到⾥⾯的⽂字时,还是要⼀个字⼀个字打出来。那么我们能不能直接识别图⽚中的⽂字呢?答案是肯定的。
⼆、Tesseract
⽂字识别是ORC的⼀部分内容,ORC的意思是光学字符识别,通俗讲就是⽂字识别。Tesseract是⼀个⽤于⽂字识别的⼯具,我们结合Python使⽤可以很快的实现⽂字识别。但是在此之前我们需要完成⼀个繁琐的⼯作。
(1)Tesseract的安装及配置
我们右击我的电脑/此电脑->属性->⾼级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定,这样才算配置好了。
(2)下载语⾔包
其中有两个中⽂语⾔包,⼀个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')
python怎么读取txtprint(string)
在识别时,我们设置lang='chi_sim',也就是把语⾔设置为简体中⽂,只有当你的tessdata⽬录下有简体中⽂包该设置才会⽣效。下⾯是我们⽤来识别的图⽚:
识别结果如下:
不要温顺的⾛进那个良夜
图⽚内容被准确识别出来了。有⼀点我们需要知道,在我们将语⾔设置为简体中⽂或其它语⾔后,Tesseract还是可以识别出英⽂字符。
(2)批量图⽚识别
既然我们把单张图⽚识别列出来了,就肯定还有批量图⽚识别这个功能,这就需要我们准备⼀个txt⽂件了,⽐如我有⽂件,内容如下:
sentence1.jpg
sentence2.jpg
我们将代码修改为如下:
import pytesseract
# 识别⽂字
string = pytesseract.image_to_string('', lang='chi_sim')
print(string)
但是这样⾃⼰写⼀个txt⽂件难免有些⿇烦,因此我们⼜可以进⾏如下修改:
import os
import pytesseract
# ⽂字图⽚的路径
path = 'text_img/'
# 获取图⽚路径列表
imgs = [path + i for i in os.listdir(path)]
# 打开⽂件
f = open('', 'w+', encoding='utf-8')
# 将各个图⽚的路径写⼊⽂件当中
for img in imgs:
f.write(img + '\n')
# 关闭⽂件
f.close()
# ⽂字识别
string = pytesseract.image_to_string('', lang='chi_sim')
print(string)
这样我们只需要传⼊⼀个⽂字图⽚的根⽬录就可以批量进⾏识别了。在测试过程中发现,Tesseract对⼿写体、⾏楷等飘逸的字体识别不准确,对⼀些复杂的字识别也有待提升。但是宋体、印刷体等笔画严谨的字体识别准确率很⾼。另外如果图⽚的倾斜⼤于⼀定的⾓度,识别结果也会有很⼤差别。
总结
到此这篇关于如何利⽤Python识别图⽚中⽂字的⽂章就介绍到这了,更多相关Python识别图⽚中⽂字内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论