You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.4 KiB
67 lines
2.4 KiB
# -*- coding: utf-8 -*-
|
|
# This file is auto-generated, don't edit it. Thanks.
|
|
# pip install alibabacloud_ocr_api20210707==3.1.2
|
|
import json
|
|
import os
|
|
|
|
from alibabacloud_ocr_api20210707 import models as ocr_api_20210707_models
|
|
from alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
|
|
from alibabacloud_tea_openapi import models as open_api_models
|
|
from alibabacloud_tea_util import models as util_models
|
|
from Config import *
|
|
|
|
|
|
class RecognizeHandwriting:
|
|
def __init__(self):
|
|
pass
|
|
|
|
@staticmethod
|
|
def create_client() -> ocr_api20210707Client:
|
|
# 安全建议:建议将密钥移到环境变量中
|
|
config = open_api_models.Config(
|
|
access_key_id=ALY_AK,
|
|
access_key_secret=ALY_SK
|
|
)
|
|
config.endpoint = f'ocr-api.cn-hangzhou.aliyuncs.com'
|
|
return ocr_api20210707Client(config)
|
|
|
|
@staticmethod
|
|
def recognize_handwriting(imageUrl) -> None:
|
|
client = RecognizeHandwriting.create_client()
|
|
recognize_handwriting_request = ocr_api_20210707_models.RecognizeHandwritingRequest(
|
|
url=imageUrl
|
|
)
|
|
runtime = util_models.RuntimeOptions()
|
|
|
|
try:
|
|
response = client.recognize_handwriting_with_options(
|
|
recognize_handwriting_request,
|
|
runtime
|
|
)
|
|
|
|
# 转换为字典格式
|
|
result = response.body.to_map()
|
|
# print("完整响应:", result)
|
|
|
|
# 检查状态码
|
|
# 正确解析数据(注意字段大小写)
|
|
data_str = result.get('Data', {})
|
|
data_dict = json.loads(data_str)
|
|
content = data_dict.get('content', '')
|
|
print("识别成功:\n")
|
|
return content
|
|
except Exception as error:
|
|
# 增强错误处理
|
|
if hasattr(error, 'data'):
|
|
error_data = error.data
|
|
print(f"错误详情:{error_data.get('Code', '未知')} - {error_data.get('Message', '无错误信息')}")
|
|
print(f"建议:{error_data.get('Recommend', '无建议')}")
|
|
else:
|
|
print(f"未处理的异常:{str(error)}")
|
|
return None
|
|
|
|
|
|
if __name__ == '__main__':
|
|
content = RecognizeHandwriting.recognize_handwriting('https://ylt.oss-cn-hangzhou.aliyuncs.com/HuangHai/1.jpg')
|
|
print(content)
|