1. 使用Apifox软件,创建一个接口
如果你想向后端传图像,可以使用下面的方法,如果只有参数,可以在Params中写入参数即可
如下图,一个创建好的接口,等后面python配置好,就可以发送请求了:
2. python接口
from io import BytesIO
import numpy as np
from PIL import Image
from flask import Flask, request
from flask import Flask
import matplotlib.pyplot as plt
from flask import render_template
import json
import base64
import cv2
import os
app = Flask(__name__)
from PIL import Image
from deeplab import DeeplabV3
@app.route("/test", methods=['POST'])
def check():
# 默认返回内容
return_dict = {'code': '200', 'message': '处理成功', 'result': None, 'label': None, 'ratio': None}
# 接收图像
data_file = request.files.get('MyName')
# 接收id
id = request.form.get("Id")
image = Image.open(data_file)
deeplab = DeeplabV3()
result, ratio = deeplab.detect_image(image)
result_ratio = [ratio]
# 返回图像
buffer = BytesIO()
result.save(buffer, "PNG") # 将Image对象转为二进制存入buffer。因BytesIO()是在内存中操作,所以实际是存入内存
buf_bytes = buffer.getvalue() # 从内存中取出bytes类型的图片
base64_data2 = 'data:image/png;base64,' + str(base64.b64encode(buf_bytes), 'utf-8')
return_dict['label'] = base64_data2
return_dict['ratio'] = result_ratio
return json.dumps(return_dict, ensure_ascii=False)
if __name__ == "__main__":
app.run(debug=True)
3. 测试
配置好后点击发送就可以获得预测后的结果啦,可以直接复制到浏览器中查看