需求:女朋友是某公司职员,最近有了一项新的工作内容,就是接收客户传来的资料,整理到一起,但是这些资料大多是图片,一个个的打开图片,手写整理到表格实在是看的我心疼,灵机一动,帮她用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 += "{} ".format(i["words"]) with open(success_path, 'a') as f: f.write("{} ".format(str1)) print(" ") print("写入中,请稍等。。。".center(60)) count += 1 print(" ") print("执行结束,共完成了{}图片的识别,资料已写入到successful.txt".format(count).center(60)) ss = input("")
原理很简单,就是用了百度智能云的图片识别接口进行识别,结果写到本地,其他厂的我也试过,个人感觉腾讯的要比百度的精确,并且得出来的结果更加好用,可以方便的写入excel,但是无奈要收费,所以最终用了百度,每天1000次免费识别,够用了