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.
QingLong/AI/C1_RecognizeHandwriting.py

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)