百度云圖像識別API調用

了解更多關注微信公眾號“木下學Python”吧~
原文:https://blog.csdn.net/zjkpy_5/article/details/85173167

通過圖片
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字節(jié)進行處理。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字節(jié)進行處理。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字節(jié)進行處理。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字節(jié)進行處理。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)

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容