python+百度 实现批量识别图片上的文字

需求:女朋友是某公司职员,最近有了一项新的工作内容,就是接收客户传来的资料,整理到一起,但是这些资料大多是图片,一个个的打开图片,手写整理到表格实在是看的我心疼,灵机一动,帮她用python写了个小脚本

原材料大概是这样,一个文件夹内有N多图片,对这些图片内的信息进行提取(没有图片所以在网上找了个图片做实例)

脚本做完之后是这个样子,一个文件夹放桌面,把需要识别的所有图片放入,点击启动

启动中,会显示进度,并且把所有识别出来的文字写入到successful中

可以看出识别出来的效果还是不错的

# 安装aip  pip install baidu-aip
import os
from aip import AipOcr

print("正在努力识别中,请耐心等待".center(60))
APP_ID = '16741980'
API_KEY = 'xxxxxxxxxxxxxxxx'  # 需要自己去注册
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxx'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)   

BASE_DIR = os.getcwd()
id_list = os.listdir(os.path.join(BASE_DIR, "要识别的图片"))
success_path = os.path.join(BASE_DIR, "successful.txt")
count = 0
for id in id_list:
    img = open(os.path.join(BASE_DIR, "要识别的图片", id), 'rb').read()
    msg = client.basicGeneral(img)  # 识别图片
    str1 = ""
    for i in msg["words_result"]:
        print("{}".format(i["words"]).center(60))
        str1 += "{}\n".format(i["words"])
    with open(success_path, 'a') as f:
        f.write("{}\n\n".format(str1))
        print("\n")
    print("写入中,请稍等。。。".center(60))
    count += 1
    print("\n\n")
print("执行结束,共完成了{}图片的识别,资料已写入到successful.txt".format(count).center(60))
ss = input("")
这里是代码

 原理很简单,就是用了百度智能云的图片识别接口进行识别,结果写到本地,其他厂的我也试过,个人感觉腾讯的要比百度的精确,并且得出来的结果更加好用,可以方便的写入excel,但是无奈要收费,所以最终用了百度,每天1000次免费识别,够用了

 

posted @ 2019-07-12 12:58  南头老李  阅读(3304)  评论(1编辑  收藏  举报