百度云图像识别API调用

了解更多关注微信公众号“木下学Python”吧~

 

通过图片

import base64
import urllib3, base64
import json
from urllib.parse import urlencode

access_token = 'your'
http = urllib3.PoolManager()
url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=' + access_token
f = open('image.png', 'rb')
# 参数image:图像base64编码
img = base64.b64encode(f.read())
params = {'image': img}
# 对base64数据进行urlencode处理
params = urlencode(params)
request = http.request('POST',
                       url,
                       body=params,
                       headers={'Content-Type': 'application/x-www-form-urlencoded'})
# 对返回的byte字节进行处理。Python3输出位串,而不是可读的字符串,需要进行转换
result = str(request.data, 'utf-8')
# 返回参数json序列化处理
res = json.loads(result)
res = res['words_result'][0]['words']
print(res)

 

通过url


import base64
import urllib3,base64
import json
from urllib.parse import urlencode

access_token='your'
http=urllib3.PoolManager()
url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token='+access_token
img_url = 'https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png'
params={'url':img_url}
#对base64数据进行urlencode处理
params=urlencode(params)
request=http.request('POST', 
                      url,
                      body=params,
                      headers={'Content-Type':'application/x-www-form-urlencoded'})
#对返回的byte字节进行处理。Python3输出位串,而不是可读的字符串,需要进行转换
result = str(request.data,'utf-8')
#返回参数json序列化处理
res = json.loads(result)
print(res)

 

封装上述两种方法

import base64
import urllib3, base64
import json
from urllib.parse import urlencode


class CaptchaRecognition():
    """
    调用百度云 api 识别验证码
    """

    access_token = 'yours' #替换成你的
    http = urllib3.PoolManager()
    url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=' + access_token

    def __init__(self,image = '',image_url = ''):
        """
        初始化图片文件对象和图片的 url
        :param image: 识别图片的文件
        :param image_url:识别图片的 url
        """
        self.image = image
        self.image_url = image_url

    def byImage(self):
        """
        通过图片识别
        :return:
        """
        f = open(self.image, 'rb')
        # 参数image:图像base64编码
        img = base64.b64encode(f.read())
        params = {'image': img}
        # 对base64数据进行urlencode处理
        params = urlencode(params)
        request = http.request('POST',
                               url,
                               body=params,
                               headers={'Content-Type': 'application/x-www-form-urlencoded'})
        # 对返回的byte字节进行处理。Python3输出位串,而不是可读的字符串,需要进行转换
        result = str(request.data, 'utf-8')
        # 返回参数json序列化处理
        res = json.loads(result)
        res = res['words_result'][0]['words']
        return res

    def byImageUrl(self):
        """
        通过图片的 url 识别
        :return:
        """
        img_url = self.image_url
        params = {'url': img_url}
        # 对base64数据进行urlencode处理
        params = urlencode(params)
        request = http.request('POST',
                               url,
                               body=params,
                               headers={'Content-Type': 'application/x-www-form-urlencoded'})
        # 对返回的byte字节进行处理。Python3输出位串,而不是可读的字符串,需要进行转换
        result = str(request.data, 'utf-8')
        # 返回参数json序列化处理
        res = json.loads(result)
        return res

调用

from baiduyun import baiduyun
r = baiduyun.CaptchaRecognition(image='image.png')
res=r.byImage()
print(res)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值