Python批量识别目录中所有图片中的所有文字并保存到txt文档中
第一步安装所需要的库(我使用的是python 3.6)1
2pip install Pillow
pip install pytesseract
第二步下载tesseract.exe文件1
2源码:https://github.com/tesseract-ocr/tesseract(无需下载)
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
第三步安装tesseract1双击下载的安装文件,安装到你的电脑(我安装在:E:\Program Files\Tesseract-OCR)
第四步配置环境变量(必须否则会报错)1
2变量名:TESSDATA_PREFIX
变量值:E:\Program Files\Tesseract-OCR\tessdata
第五步修改pytesseract.py(必须否则会报错)1
2
3
4
5
6打开
C:\python36\Lib\site-packages\pytesseract\pytesseract.py
里面大概在24或26行
tesseract_cmd ='tesseract'
改为
tesseract_cmd ='E:/Program Files/Tesseract-OCR/tesseract.exe'
第六步下载中文字体包(如果你要识别中文的话)1
2
3https://github.com/tesseract-ocr/tessdata
找到chi_sim.traineddata,下载到本地后存放到E:\Program Files\Tesseract-OCR\tessdata目录
运行 E:\Program Files\Tesseract-OCR\tesseract --list-langs 可以查看你目前支持的字体库
第七步上代码如下:'''
Python批量识别
目录中所有图片中的所有文字
并保存到txt文档中
'''
from PIL import Image
import pytesseract
import string,re,os
def imgtostr(imgpath):
'''识别图片中的所有文字'''
image = Image.open(imgpath)
text=pytesseract.image_to_string(image,) #调用识别引擎识别
text=text.replace("\n","") #去换行
return text
def writefile(path,strstr):
'''将文字累加写入txt文档'''
with open(path+'/word.txt',"a", encoding= "utf-8") as f:
f.write(strstr)
f.write("\n\n")
if __name__ == '__main__':
print("\n")
path = input('请输入要识别的图片目录:')
print("\n.................start\n")
for foldName, subfolders, filenames in os.walk(path):
toltal = 0
for fe in filenames:
grpaimg = path + '/' + fe
print(grpaimg)
textddd = imgtostr(grpaimg)
writefile(path,grpaimg+":\n"+textddd)
print(textddd, end="\n\n")
print(".................end")