目前做OCR的试题图片的识别工作,由于阿里云提供了免费的OCR的接口,免费调用500次,借着学习的目标就开始使用。由于本人使用的是macbook Pro 系统为最新的10.15版本,python是3.7的版本,按照原版的阿里云接口调用模板就无法使用,为了兼容及特别改写了基于此版本的接口调用模板。原版的urllib2实在是无法正常使用,使用最新的urllib3去创建request。
import urllib3
import base64
import json
with open('/Users/yannic/Downloads/2.jpeg', 'rb')as f:# 以二进制读取本地图片
data = f.read()
encodestr = base64.b64encode(data)# 得到 byte 编码的数据
strImageData =str(encodestr, 'utf-8')# 重新编码数据
jsonData = {'image': strImageData, 'configure':'{"is_keypoints":true}'}# 阿里云接口调用需要的字典类型
host ='https://education.market.alicloudapi.com' # 阿里云接口调用域名地址及协议
path ='/api/predict/education_ocr' # 阿里云接口URI路径
method ='POST' # 请求方式为POST
appcode ='xxxxxxxxxxxxxxxxxxxxxxxxx' # appcode,参考阿里云的创建方式
url = host + path
Header = {'Content-Type':'application/json;charset=utf-8', 'Authorization':'APPCODE ' + appcode}# 设置请求的header参数
encoded_data = json.dumps(jsonData)# Python 字典类型转换为 JSON 对象
http = urllib3.PoolManager(num_pools=5)# PoolManager实例来生成请求,由该实例对象处理与线程池的连接以及线程安全的所有细节
responseData = http.request(method, url, body=encoded_data, headers=Header)
jsonStr = responseData.data.decode(encoding="utf-8")# 将数据进行编码转换
print(jsonStr)