Python批量识别目录中所有图片中的所有文字并保存到txt文档中
第一步安装所需要的库(我使用的是python 3.6)
1 2 | pip install Pillow pip install pytesseract |
第二步下载tesseract.exe文件
1 2 | 源码:https: //github.com/tesseract-ocr/tesseract(无需下载) 下载地址:https: //digi.bib.uni-mannheim.de/tesseract/ |
第三步安装tesseract
1 | 双击下载的安装文件,安装到你的电脑(我安装在: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 3 | https: //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,lang='chi_sim') #调用识别引擎识别 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")