百度文字识别API参考:https://www.jianshu.com/p/816cc6ef571b
本地tesseract_ocr参考:https://blog.csdn.net/jclian91/article/details/80628188 https://www.cnblogs.com/lizhe860/p/8969171.html
最终经过对比,百度云这个API整体识别率更高~~
1 百度云文字识别:
先参考上述链接(百度文字识别API参考:https://www.jianshu.com/p/816cc6ef571b)做好准备工作,然后:
实现批量提取文件夹里图片,将你想识别的图片放到py文件所在目录即可
from aip import AipOcr
import os
""" 你的 APP_ID API_KEY SECRET_KEY,上面的图已经展示了如何找自己的这三个信息,只需要复制信息,放进去单引号里面就行,均为字符串 """
APP_ID = '你的ID'
API_KEY = '你的KEY'
SECRET_KEY = '你的SECRET'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
wildcard = ".jpg .png .jpeg .bmp" #后缀名
exts = wildcard.split(' ')
filepath = os.path.abspath('.')
path_list = os.listdir(filepath)
#print(filepath)
#file=open('E:\\Python\\PyQt5\\path.txt','a')#w会直接覆盖已有文件a为追加
for pa in path_list:
# print(pa)
(filename, ext) = os.path.splitext(pa)
if ext in exts:
file = open(filepath + '\\' + pa,'rb')
img = file.read()
file.close()
options = {}
options["detect_direction"] = "true"
options["probability"] = "true"
message = client.basicAccurate(img, options)
f=open(filepath + '\\' + filename + '.txt','w')#w会直接覆盖已有文件a为追加
for i in message.get('words_result'):
print(i.get('words'))
f.write(i.get('words')+'\n')
f.close()
2 本地tesseract:
下载安装tesseract:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
安装pytesseract(会同时安装pytesseract、Pillow):
pip install pytesseract
安装完后,需要将Tesseract添加到系统变量中:参考 https://blog.csdn.net/yannanyue1234/article/details/79781569
但是发现这里边TESSDATA_PREFIX变量配置的有问题,系统变量TESSDATA_PREFIX设置成C:\Program Files (x86)\Tesseract-OCR\tessdata不行,参考:https://bbs.csdn.net/topics/392292820?page=1设置成C:\Program Files (x86)\Tesseract-OCR也不行;
参考:https://www.jianshu.com/p/aa5e88db7033:
第一次用ide使用tesseract的时候 需要修改一下pytesseract.py中的tesseract_cmd指向的路径
tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
继续参考:https://www.cnblogs.com/hupeng1234/p/7136442.html
搞定
import pytesseract
from PIL import Image
tessdata_dir_config = '--tessdata-dir "C://Program Files (x86)/Tesseract-OCR/tessdata"'
pytesseract.pytesseract.tesseract_cmd = 'C://Program Files (x86)/Tesseract-OCR/tesseract.exe'
text = pytesseract.image_to_string(Image.open('E://Python/PyQt5/11111.png'),lang="eng", config=tessdata_dir_config)
print(text)
但是今天出于好奇,把代码删的只剩下:
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open('E://Python/PyQt5/11111.png'),lang="eng")
print(text)
仍然可以运行,奇了怪了。。。。
猜测可能是之前设置环境变量之后没有立即生效
如果您看到了最后,右上角赞留一下,谢谢~