1 Star 5 Fork 4

menggulang/bjjnts_digital_recognition

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
digit_recognition_interface.py 3.02 KB
一键复制 编辑 原始数据 按行查看 历史
zkwang 提交于 2021-10-11 19:43 +08:00 . 初次提交
# _*_ coding:utf8 _*_
import cv2
import flask
from flask import request
import base64
import uuid
import json
from digit_calculate import get_char_list, calculate_digit
'''
flask: web框架,通过flask提供的装饰器@server.route()将普通函数转换为服务
登录接口,需要传url、username、passwd
'''
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
@server.route('/digit/recognition/post', methods=['post'])
def post_digit_recognition():
if not request.data:
# 检测是否有数据
return "fail"
# 取值
request_data = request.data.decode('utf-8')
data_json = json.loads(request_data)
# 从json中获取数据
base64_string = data_json["imageBase64"]
# 获取参数,其实是避免get方法的参数在http传输中会替换
base64_string_change = base64_string.replace(" ", "+")
# 根据逗号切分出base64字符串
comma_index = base64_string_change.find(",")
if comma_index >= 0:
base64_code = base64_string_change[comma_index+1:]
else:
base64_code = base64_string_change
# 解码
base64_image = base64.b64decode(base64_code)
# 保存图片
uuid_string = uuid.uuid1()
image_path = './request_image/' + str(uuid_string) + '.png'
# 用写文件的方式写入
image_file = open(image_path, 'wb')
image_file.write(base64_image)
image_file.close()
# 读取图片
image_data = cv2.imread(image_path)
char_list = get_char_list(image_data)
recognition_result = calculate_digit(char_list)
print(image_path, recognition_result)
json_result = {'code': 200, 'result': recognition_result}
# 将字典转换为json串,json字符串
return json.dumps(json_result, ensure_ascii=False)
@server.route('/digit/recognition/get', methods=['get'])
def get_digit_recognition():
# 获取参数
base64_string = request.args.get('imageBase64')
# 避免get方法的参数在http传输中会替换
base64_string_change = base64_string.replace(" ", "+")
# 根据逗号切分出base64字符串
comma_index = base64_string_change.find(",")
if comma_index >= 0:
base64_code = base64_string_change[comma_index+1:]
else:
base64_code = base64_string_change
# 解码
base64_image = base64.b64decode(base64_code)
# 保存图片
uuid_string = uuid.uuid1()
image_path = './request_image/' + str(uuid_string) + '.png'
# 用写文件的方式写入
image_file = open(image_path, 'wb')
image_file.write(base64_image)
image_file.close()
# 读取图片
image_data = cv2.imread(image_path)
char_list = get_char_list(image_data)
recognition_result = calculate_digit(char_list)
print(image_path, recognition_result)
json_result = {'code': 200, 'result': recognition_result}
# 将字典转换为json串,json字符串
return json.dumps(json_result, ensure_ascii=False)
if __name__ == '__main__':
# 启动接口
server.run(debug=True, port=8082, host='0.0.0.0')
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/kai2020/bjjnts_digital_recognition.git
git@gitee.com:kai2020/bjjnts_digital_recognition.git
kai2020
bjjnts_digital_recognition
bjjnts_digital_recognition
master

搜索帮助