温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中怎么识别图片里的文字

发布时间:2021-07-10 11:58:58 阅读:201 作者:Leah 栏目:大数据
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章将为大家详细讲解有关Python中怎么识别图片里的文字,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1.Tesseract的安装及配置

Tesseract的安装我们可以移步到该网址 https://digi.bib.uni-mannheim.de/tesseract/,我们可以看到如下界面:

Python中怎么识别图片里的文字  

有很多版本供大家选择,大家可以根据自己的需求选择。其中w32表示32位系统,w64表示64位系统,大家选择合适的版本即可。

可能下载速度比较慢,大家可以选择链接:https://pan.baidu.com/s/1jKZe_ACLQCVXiCmvHj9adw 提取码:ayel下载。安装时我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,我们路径是D:\CodeField\Tesseract-OCR

Python中怎么识别图片里的文字  

我们右击我的电脑/此电脑->属性->高级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定,这样才算配置好了。

 

2.下载语言包

Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包,下载地址如下:https://tesseract-ocr.github.io/tessdoc/Data-Files ,进入网站后我们往下翻:

Python中怎么识别图片里的文字  

其中有两个中文语言包,一个Chinese-Simplified和Chinese-Traditional,它们分别是简体中文和繁体中文,我们选择需要的下载即可。下载完成后我们需要放到Tesseract的路径下的tessdata目录下,我们路径是D:\CodeField\Tesseract-OCR\tessdata

 

3.其它模块下载

除了上面的步骤,我们还需要下载两个模块:

pip install pytesseractpip install pillow
 

第一个是用于文字识别的,第二个是用于图片读取的。接下来我们就可以进行文字识别了。

 

三、文字识别

 

1.单张图片识别

接下来的操作就要简单的多,下面是我们要识别的图片:

Python中怎么识别图片里的文字  

接下来就是我们文字识别的代码:

import pytesseractfrom 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 pytesseractfrom PIL import Image# 读取图片im = Image.open('sentence.png')# 识别文字,并指定语言string = pytesseract.image_to_string(im, lang='chi_sim')print(string)
 

在识别时,我们设置lang='chi_sim',也就是把语言设置为简体中文,只有当你的tessdata目录下有简体中文包该设置才会生效。下面是我们用来识别的图片:

Python中怎么识别图片里的文字  

识别结果如下:

不 要 温 顺 的 走 进 那 个 良 夜
 

图片内容被准确识别出来了。有一点我们需要知道,在我们将语言设置为简体中文或其它语言后,Tesseract还是可以识别出英文字符。

 

2.批量图片识别

既然我们把单张图片识别列出来了,就肯定还有批量图片识别这个功能,这就需要我们准备一个txt文件了,比如我有text.txt文件,内容如下:

sentence1.jpgsentence2.jpg
 

我们将代码修改为如下:

import pytesseract# 识别文字string = pytesseract.image_to_string('text.txt', lang='chi_sim')print(string)
 

但是这样自己写一个txt文件难免有些麻烦,因此我们又可以进行如下修改:

import osimport 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)

关于Python中怎么识别图片里的文字就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/4579171/blog/4699459

AI

开发者交流群×