跟我一起学【Python3】之——百度ai+Tesseract-OCR识别图片文字和数字

1.安装python包

pip install pillow
pip install pytesser3
pip install pytesseract
pip install wheel
pip install baidu-aip
pip install keyboard

2.安装Tesseract-OCR

3.源码

from aip import AipOcr
import keyboard
import os
from PIL import ImageGrab
from time import sleep
def get_reuslt(img_name):
    a=input('是否添加可信度?(建议字多不加)  (y/n):')
    if a == 'y':
        APP_ID = 'xxx'
        API_KEY = 'xxx'
        SECRET_KEY = 'xxx'
        client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
        """ 读取图片 """
        with open(img_name, 'rb') as fp:
            image = fp.read()
            """ 如果有可选参数 """
            options = {}
            options["detect_direction"] = "true"
            options["probability"] = "true"
            """ 带参数调用通用文字识别(高精度版) """
            client = client.basicAccurate(image, options)
            print(type(client))
            for i in client['words_result']:
                reuslt = i['words']
                Credibility = i['probability']['average']
                wyc=reuslt+"   平均可信度为:"+str((Credibility) * 100) + '%'
                print(wyc)
                with open(img_name+'.txt','a',encoding='utf-8') as f :
                    f.write(wyc+'\n')
            print("文本已经保存本地")
    else:
        APP_ID = 'xxxxx'
        API_KEY = 'xxxx'
        SECRET_KEY = 'xxxxx'
        client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
        """ 读取图片 """
        with open(img_name, 'rb') as fp:
            image=fp.read()
            """ 如果有可选参数 """
            options = {}
            options["detect_direction"] = "true"
            options["probability"] = "false"
            """ 带参数调用通用文字识别(高精度版) """
            client=client.basicAccurate(image, options)
            for i in client['words_result']:
                reuslt=i['words']
                print(reuslt+'\t')
                with open(img_name+'.txt','a',encoding='utf-8') as f :
                    f.write(reuslt+'\n')
            print("文本已经保存本地" )
def jietu():
    while 1:
        keyboard.wait('f1','')
        keyboard.wait('ctrl+c')
        sleep(0.2)
        image = ImageGrab.grabclipboard()
        # 从剪贴版获取图片
        image.save('截图.jpg')
        for filename in os.listdir(r"./"):
            if (filename.endswith('.jpg')) or (filename.endswith('.png')) or (filename.endswith('.bmp')):
                get_reuslt(filename)
        print('请继续截图....')
def main():
    for filename in os.listdir(r"./"):
        if (filename.endswith('.jpg')) or (filename.endswith('.png')) or (filename.endswith('.bmp')) :
            get_reuslt(filename)
    input("结束请按Enter键")
if __name__ == '__main__':
    print('********'*2+'请开始你的表演!!!!'+'********'*2+'\n')
    print('截屏识别填1,图片识别填2:')
    pd=input('')
    if pd=='2':
        print('***************请将图片放置本目录下***************')
        a=input("我已将图片放好?  (y/n):")
        if a=='y':
            main()
        else:
            pass
    else:
        print('只支持快捷键F1截屏,需要按 Ctrl+c 将图片存到剪贴板...')
        print('请开始截图.......')
    jietu()

4.报错解决:pytesseract.pytesseract.TesseractNotFoundError

问题解决:Python\Python36-32\Lib\site-packages\pytesseract 路径下的pytesseract.py文件中,注意反斜杠!!!!

tesseract_cmd = ‘D:/Program Files/Tesseract-OCR/tesseract.exe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值