前言
本文章简单介绍如何用python中的pytesseract工具调用Tesseract库实现文字识别。本篇文章是搜集网络资料再结合本人的观点和思考编撰而成,在此十分感谢作者提供的帮助!
代码前准备
调用模块
首先,win+R在弹出的窗口中输入cmd(如图 1.1)
(tips:在此建议大家用“管理员”身份运行cmd)
输入后会弹出一个对话框,在对话框内先后输入以下两行代码
pip install pytesseract pip install pillow
下载并安装Tesseract
介绍
Tesseract 是一个OCR 库,你可以用pytesseract这个OCR工具来调用它
下载安装
我们可以到这个网站 https://digi.bib.uni-mannheim.de/tesseract/中选择适合你电脑电脑系统以及Tesseract的版本(一般来说数字越大,版本越高)
选择合适的版本下载下来(图1.2)(注意这个w64和w32)
直接点击这个已经下好的安装包开始安装,点击Next>(图1.3)
再点击I Agree(图1.4)
这一步可以默认操作点击Next>(图1.5)
之后就是配置语言操作
Additional language data (download)..........这是语言包下载(注意:因为Tesseract它本身并未有这个中文简体或繁体的识别语言包,所以这需要手动下载。除此还可以选择其它国家的语言包,来相对应识别文字的语言)(图1.6 和图1.7)
点击Next>点击后默认安装路径(注意:最好是默认安装路径!)
原因是等会安装之后运行代码会报错(报错的原因可能是“系统找不到指定文件”,这类的问题文章后面会说明如何解决)
环境配置
(我说你做)首先在系统环境变量中的path复制这个安装后的文件(图1.8-图1.9)
代码实现
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)
或者是这种
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)
注意下!图片存放的位置要注意是在同级还是在非同级
如代码一它这个是图片与程序非同级,代码二则是同级的!!!(图1.10代码一;图1.11代码二)
算便说一下代码一中的“text”是储存识别图片的名字数据(注意图片的名字不含中文、字符等等)
常见问题解答
一、FileNotFoundError:[WinError 2]系统找不到指定文件。
前面提过了吧!若是要保留这样你可以这么做试试(python-文字识别-tesseract - 知乎 (zhihu.com))#这是别人的作者提供的方案。十分感谢他。
二、(错误如下)
没错这是图片的名称含有这个特殊字符、中文等(总之是名称不规范)改一下试试。文章的“代码实现”还提供了两个方式若实在不行换另一个试试。
好了该篇文章结束了,也希望这也能帮助到你,愿你的python编程实力不断增强!
(若文章有一些问题请及时联系作者以便即使改正,谢谢!)