百度云OCR
上一篇文章:基于python的百度云OCR 介绍了百度云OCR的使用方法,是直接调用AipOcr模块来进行代码编写的
本博文是通过百度云OCR接口自己对OCR进行封装和调用的,建议先查看上一篇博文之后,再阅读本博文代码
import base64
import requests
class OCR(object):
# client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id = "your-key"
client_secret = "your-secret-key"
def get_token(self):
"""获取 access_token"""
host = 'https://aip.baidubce.com/oauth/2.0/token'
# 请求头
headers = {'Content-Type': 'application/json; charset=UTF-8'}
# 请求参数
params = {
"grant_type": "client_credentials",
"client_id": self.client_id,
"client_secret": self.client_secret
}
# get 请求
response = requests.get(host, headers=headers, params=params)
# 获取 json 内容
content = response.json()
# 获取 access_token
access_token = content["access_token"]
return access_token
def encode_img(self, img_path):
"""对图片进行编码"""
with open(img_path, "rb") as f:
img_content = f.read()
# 对图片进行 base64 编码
img_content = base64.b64encode(img_content)
return img_content
def img_to_str(self, img_path):
"""对图片文字进行识别"""
access_token = self.get_token()
# 请求 URL
URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + access_token
# post 请求头
headers = {"Content-Type": "application/x-www-form-urlencoded"}
# post 参数
data = {
"image": self.encode_img(img_path)
}
# post 请求
response = requests.post(URL, headers=headers, data=data)
return response.json()
if __name__ == '__main__':
ocr = OCR()
print(ocr.img_to_str("your image's path"))