概述
【应用】Python调用百度AI实现图片上文字识别
- 简介
- 步骤
- 安装百度AI库
- 注册百度AI开放平台
- 调用glob库
- 调用AipOcr库识别文字
- 可能会遇到的问题
- 批量操作
简介
Python免费调用百度AI实现图片上面的文字识别
步骤
安装百度AI库
!pip install baidu-aip
注册百度AI开放平台
先注册百度AI,获得ID和密钥。注册方法可参考:注册方法 只需走到 “1.6 获取密钥” 即可。然后记录下自己的APP_ID、API_KEY、SECRET_KEY,就可以开始了。
调用glob库
glob
库用于获得指定路径下的指定后缀的文件,图片使用的是《数学模型》pdf扫描版,部分如下:
import glob
path = "数学模型\"
glob.glob(path+"*.png")
指定文件夹中的指定的.png后缀的文件,全部提取出来了:
选取第一张图片 “数学模型1.png” 做测试:
files = glob.glob(path+"*.png")
file = files[0]
调用AipOcr库识别文字
导入AipOcr
模块,这个模块是用于做文字识别的(OCR即Optical Character Recognition,光学字符识别)。填入你申请的ID和KEY,client = AipOcr()
是固定写法。先用二进制方式rb打开,然后读取,再调用百度AI进行识别,并将识别结果存入message
变量。
from aip import AipOcr #导入AipOcr模块,用于做文字识别
import glob
APP_ID = '*********' # 你申请的
API_KEY = '*********'# 你申请的
SECRET_KEY = '*********'# 你申请的
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
pic = open(file,'rb')# 以二进制(rb)打开
img = pic.read() # 读取
message = client.basicGeneral(img) # 调用百度AI识别图片中的文字
查看message参数,结果如下:
可见,message
参数的结果为 “大字典” 形式,其中的键 words_result
所对应的值为一个 “大列表” ,这个列表里又有很多键值对,键都是words
,值就是AI从图片上识别出来的内容。使用语句message['words_result'][0...n]['words']
可以筛选出该页的标题:
message['words_result'][1]['words']
for循环逐行提取:
for words in message['words_result']:
word = words['words'] # 提取文字
print(word)
识别效果图:
识别也不是完美的,有很多识别错误与未识别出的文字。当然,原图字体越清晰,识别度越高。
可能会遇到的问题
识别过程中可能会遇到类似识别错误(无法识别)问题,原因是未领取免费识别次数,解决过程如下:
百度OCR API识别失败:Open api qps request limit reached 错误 解决方法
批量操作
批量操作的核心为for循环,txt_file = open('数学模型.txt', 'a')
指打开名字为“数学模型”的文本文件(若不存在则自动新建),模式为添加模式,即’a’模式。添加模式是指,如果文本中已经有一些内容,则接着往下写,不会影响原来的内容。如果是’w’模式,则会将之前的内容全部覆盖。然后遍历待处理的图片,逐个处理:
from aip import AipOcr #导入AipOcr模块,用于做文字识别
import glob
APP_ID = '*********' # 你申请的
API_KEY = '*********'# 你申请的
SECRET_KEY = '*********'# 你申请的
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
path = "数学模型\"
files = glob.glob(path+"*.png")
txt_file = open('数学模型.txt', 'a')
for file in files:
pic = open(file,'rb')# 以二进制(rb)打开
img = pic.read() # 读取
message = client.basicGeneral(img) # 调用百度AI识别图片中的文字
for words in message['words_result']:
word = words['words'] # 提取文字
print(word)
txt_file.write(word) # 将文字写入文本文件
txt_file.close() # 关闭文本文件
感谢观看!对你有帮助的话可以点点赞,欢迎在评论区留言讨论!
最后
以上就是光亮自行车为你收集整理的【应用】Python调用百度AI实现图片上文字识别简介步骤的全部内容,希望文章能够帮你解决【应用】Python调用百度AI实现图片上文字识别简介步骤所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复