Python百度ai识别图片表格

本文介绍了如何利用Python结合百度AI接口进行图片中的表格识别,并将识别内容导出为Excel文件。首先,需要注册并登录百度AI,创建应用获取AK和SK。然后,通过代码获取Access Token,使用该Token来识别含表格的图片,最终将识别出的表格内容转换成Excel格式。虽然图片质量高时效果较好,但批量处理时反馈时间较长,且数据完整性有限。

Python百度ai识别表格

通过借助百度ai的接口实现含表格图片的识别,并将表格内容返回为Excel文件。

  1. 获取Access Token
    (1)有百度账号的直接登录百度ai,没有的注册在登录。
    (2)然后创建应用,创建文字识别,选取功能
    在这里插入图片描述
    (3)创建完成之后点击管理应用,里面有相应的AK和SK
    在这里插入图片描述
    (4)获取Access Token
    将得到的AK和SK替换进代码,输出的即为access_token
import requests
import json
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    res=response.json()
    print(res['access_token'])
  1. 下面以一张图片为例,我们提取它里面的表格。
    完整代码:
import requests
import base64
import json
import time



'''
表格文字识别(异步接口)
'''
class BaiduAi():
    def __init__(self,file):
        self.file=file  #图片地址

    def getAccess_token(self):
        host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
        response = requests.get(host)
        if response:
            res = response.json()
            self.access_token=res['access_token']

    def getRequest_id(self):
        # 二进制方式打开图片文件
        request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request"
        f = open(self.file, 'rb')
        img = base64.b64encode(f.read())
        params = {"image":img}
        access_token = self.access_token
        request_url = request_url + "?access_token=" + access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        response = requests.post(request_url, data=params, headers=headers)
        if response:
            request_id=list(response.json()["result"][0].values())
            self.request_id=request_id[0]

    def getExcel_url(self):
        url1='https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result'
        headers1 = {'content-type': 'application/x-www-form-urlencoded'}
        body={'request_id': self.request_id,'result_type':'excel'}   #这里的type可以选择josn和excel,我们选择excel
        access_token = self.access_token
        url1 = url1 + "?access_token=" + access_token
        response1 = requests.post(url1, data=body, headers=headers1)
        if response1:
            print (response1.json())

if __name__=='__main__':
    data='C:/Users/Administrator/Desktop/测试表格.png'
    f1=BaiduAI(data)
    f1.getAccess_token()
    f1.getRequest_id()
    f1.getExcel_url()
    time.sleep(60)   #由于这个ai识别需要一段时间,我们设置60s来等他获取结果
    f1.getExcel_url()

运行结果:在这里插入图片描述
最后点击网页下载,你也可以编写几行代码自动下载。

测试所用图片:
在这里插入图片描述
得到的Excel:
在这里插入图片描述
总结:对图片质量要求较高,且对于若要批处理的话,反馈结果时间间隔较长,得到的数据也不是很全。。。。(是因为免费吗。。。)

最后:我是小白不要喷我。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值