文章目录
前言
今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图片上面的文字识别。相对于Python的第三方库,百度人工智能要更强大,毕竟人工智能不是那么容易搞的。要调用,其实很简单,关键的代码只需要三行。但需要先注册百度AI,获得ID和密钥。注册也很简单,百度AI社区有详细说明,高铁直达链接:https://ai.baidu.com/forum/topic/show/867951 。只需走到“1.6 获取密钥”即可。然后记录下自己的
APP_ID、API_KEY
、
SECRET_KEY
,就可以开始了。界面如下。每个ID每天可免费识别200次,请珍惜使用哈。
代码说明如下:
导入模块
from aip import AipOcr #导入AipOcr模块,用于做文字识别import glob
该部分代码导入了
AipOcr
模块和
glob
模块。
设置百度AI的APP_ID、API_KEY和SECRET_KEY
APP_ID ='你申请的'
API_KEY ='你申请的'
SECRET_KEY ='你申请的'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
这段代码设置了百度AI的APP_ID、API_KEY和SECRET_KEY,并使用这些参数创建了一个
AipOcr
对象。
定义路径和文件列表
path ="红楼梦\\"
files = glob.glob(path+"*.png")
这部分代码定义了一个路径
path
和一个文件列表
files
,通过使用
glob.glob
函数来获取指定路径下所有的
.png
文件。
打开文本文件准备写入数据
txt_file =open('红楼梦.txt','a')
该部分代码打开一个名为
红楼梦.txt
的文本文件,以追加(‘a’)的方式打开。
逐个处理图片文件
forfilein 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)#将文字写入文本文件
这部分代码使用
for
循环逐个处理
files
中的图片文件。首先打开图片文件,以二进制读取模式(‘rb’)打开,并读取图片内容。然后调用
client.basicGeneral
方法,将图片内容传递给百度AI进行文字识别,返回的结果保存在
message
中。接着使用
for
循环遍历
message['words_result']
中的每个元素,提取出其中的文字信息并保存在
word
变量中。然后将文字写入文本文件
txt_file
中。
关闭文本文件
txt_file.close()
关闭文本文件。
重复处理其他图片文件
path ="论文\\"
files = glob.glob(path+"*.png")
txt_file =open('论文1.txt','a')forfilein files:
pic =open(file,'rb')
img = pic.read()
message = client.basicGeneral(img)for words in message['words_result']:
word = words['words']print(word)
txt_file.write(word)
txt_file.close()
这部分代码与前面类似,只是处理的图片路径和文本文件名称不同。同样使用
glob.glob
函数获取指定路径下的所有
.png
文件,并逐个对其进行文字识别,并将识别结果保存到文本文件中。最后关闭文本文件。
完整代码
下面是整理后的代码,并对其进行讲解说明:
from aip import AipOcr
import glob
# 导入AipOcr模块,用于做文字识别# 导入glob模块,用于获取文件列表
APP_ID ='你申请的'
API_KEY ='你申请的'
SECRET_KEY ='你申请的'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)# 设置百度AI的APP_ID、API_KEY和SECRET_KEY,并创建AipOcr对象
path ="红楼梦\\"
files = glob.glob(path +"*.png")
txt_file =open('红楼梦.txt','a')# 定义路径和文件列表,打开一个红楼梦.txt的文本文件以追加的方式forfilein files:
pic =open(file,'rb')
img = pic.read()
message = client.basicGeneral(img)# 逐个处理图片文件,打开图片文件,读取图片内容# 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别for words in message['words_result']:
word = words['words']print(word)
txt_file.write(word)# 遍历识别结果中的每个文字,提取出文字并打印# 将文字写入文本文件
txt_file.close()# 关闭文本文件
path ="论文\\"
files = glob.glob(path +"*.png")
txt_file =open('论文1.txt','a')# 重新定义路径和文件列表,打开一个论文1.txt的文本文件以追加的方式forfilein files:
pic =open(file,'rb')
img = pic.read()
message = client.basicGeneral(img)# 逐个处理图片文件,打开图片文件,读取图片内容# 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别for words in message['words_result']:
word = words['words']print(word)
txt_file.write(word)# 遍历识别结果中的每个文字,提取出文字并打印# 将文字写入文本文件
txt_file.close()# 关闭文本文件
解释说明
- 导入
AipOcr
模块和glob
模块,前者用于调用百度AI的文字识别功能,后者用于获取指定路径下的图片文件列表。 - 根据实际申请的百度AI账号,设置了
APP_ID
、API_KEY
和SECRET_KEY
,并使用这些参数创建了一个AipOcr
对象。 - 定义了两个路径变量
path
,分别对应红楼梦和论文的文件夹路径。使用glob.glob
函数获取指定路径下的所有.png
文件,并保存到files
列表中。 - 打开一个相应的文本文件以追加的方式,用于保存文字识别的结果。
- 通过循环遍历处理每个图片文件。首先打开图片文件,并读取其内容。然后调用
client.basicGeneral
方法,将图片内容传递给百度AI进行文字识别。返回的结果保存在message
中。 - 使用
for
循环遍历message['words_result']
中的每个元素,提取出其中的文字信息并保存在word
变量中。然后将文字打印出来,并写入文本文件中。 - 关闭文本文件。
这段代码的核心功能是通过百度AI的文字识别功能对指定路径下的图片文件进行文字识别,并将识别结果保存到相应的文本文件中。可以根据实际情况,修改路径、文件名和文件格式等参数,适用于其他图片文件的文字识别任务。
运行效果
版权归原作者 全栈若城 所有, 如有侵权,请联系我们删除。