|
|
@@ -4,7 +4,7 @@ import json
|
|
|
import os
|
|
|
import sys
|
|
|
|
|
|
-from typing import List
|
|
|
+from typing import List, Tuple, Any
|
|
|
|
|
|
from alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
|
|
|
from alibabacloud_tea_openapi import models as open_api_models
|
|
|
@@ -42,25 +42,32 @@ class Sample:
|
|
|
|
|
|
@staticmethod
|
|
|
def main(
|
|
|
- args: List[str],
|
|
|
- ) -> None:
|
|
|
+ args: List[str],
|
|
|
+ pic_path,
|
|
|
+ ocr_type
|
|
|
+ ) -> tuple[Any, Any]:
|
|
|
+ far = None
|
|
|
+ ticket_number = None
|
|
|
+
|
|
|
client = Sample.create_client()
|
|
|
# 需要安装额外的依赖库,直接点击下载完整工程即可看到所有依赖。
|
|
|
- body_stream = StreamClient.read_from_file_path('uploads/20240301172645.jpg')
|
|
|
+ body_stream = StreamClient.read_from_file_path(pic_path)
|
|
|
recognize_all_text_request = ocr_api_20210707_models.RecognizeAllTextRequest(
|
|
|
body=body_stream,
|
|
|
- type='TrainTicket',
|
|
|
+ type=ocr_type,
|
|
|
output_figure=False,
|
|
|
output_qrcode=False
|
|
|
)
|
|
|
runtime = util_models.RuntimeOptions()
|
|
|
try:
|
|
|
resp = client.recognize_all_text_with_options(recognize_all_text_request, runtime)
|
|
|
- # ConsoleClient.log(UtilClient.to_jsonstring(resp))
|
|
|
+ ConsoleClient.log(UtilClient.to_jsonstring(resp))
|
|
|
data = json.loads(UtilClient.to_jsonstring(resp))
|
|
|
if data['statusCode'] == 200:
|
|
|
- ConsoleClient.log("far:" + data['body']['Data']['SubImages'][0]['KvInfo']['KvDetails']['fare']['Value'])
|
|
|
- ConsoleClient.log("ticketNumber:" + data['body']['Data']['SubImages'][0]['KvInfo']['Data']['ticketNumber'])
|
|
|
+ far = data['body']['Data']['SubImages'][0]['KvInfo']['KvDetails']['fare']['Value']
|
|
|
+ ticket_number = data['body']['Data']['SubImages'][0]['KvInfo']['Data']['ticketNumber']
|
|
|
+ ConsoleClient.log("far:" + far)
|
|
|
+ ConsoleClient.log("ticketNumber:" + ticket_number)
|
|
|
|
|
|
except Exception as error:
|
|
|
# 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
|
|
|
@@ -70,9 +77,11 @@ class Sample:
|
|
|
print(error.data.get("Recommend"))
|
|
|
UtilClient.assert_as_string(error.message)
|
|
|
|
|
|
+ return far, ticket_number
|
|
|
+
|
|
|
@staticmethod
|
|
|
async def main_async(
|
|
|
- args: List[str],
|
|
|
+ args: List[str],
|
|
|
) -> None:
|
|
|
client = Sample.create_client()
|
|
|
# 需要安装额外的依赖库,直接点击下载完整工程即可看到所有依赖。
|
|
|
@@ -97,4 +106,5 @@ class Sample:
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- Sample.main(sys.argv[1:])
|
|
|
+ Sample.main(sys.argv[1:], 'uploads/20240301172645.jpg', 'TrainTicket')
|
|
|
+
|