Python 图像文字识别提取的两种简单方案(Windows)

百度文字识别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)

仍然可以运行,奇了怪了。。。。

猜测可能是之前设置环境变量之后没有立即生效

如果您看到了最后,右上角赞留一下,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值