赞
踩
毕设需要做一个C#写的前端应用,后端算法是用python训练的。所以,一直在找怎么将这两者结合起来,即如何将python算法部署到winform前端。
硬件局限:笔记本没有GPU,只能使用CPU;算法必须使用GPU跑。
查了大量的资料,终于在flask论坛上找到了答案。同时,找到了一个链接。所以最后选择了使用Flask将python部署到Winform。
代码部分直接放到这里:
```python save_path = './imgt/test/' # 保存后端传过来的图片路径 # 服务返回 # 接收图片并保存,调用模型----接的是byte[],传的也是byte[] @app.route('/upload_image/',methods=['POST']) def get_image(): # 接收前端传来的图片,并存入且取名 ./imgt/test/1.png startTime = time.time() # 获取到post请求传来的byte[]数据 result = request.data # 将bytes结果转化为字节流 bytes_stream = BytesIO(result) # 读取到图片 image = Image.open(bytes_stream) if image is None: print("nothing found!") if not os.path.exists(save_path): os.makedirs(save_path) else: # 加上覆盖操作 shutil.rmtree(save_path) os.makedirs(save_path) image.save(save_path+'1.png') print("图片上传成功!") inputTime = time.time() - startTime print('上传图片时间为: %f' % inputTime) # 调用模型 predict_image() # 返回文件夹中的图片给前端----可以传byte[] output_image_data = open((output_save_path+'1.png'), "rb").read() return output_image_data output_wp_path = './out_wp/' # 图片保存路径 # 服务返回 # 接收元组数据列表并返回图片 @app.route('/upload_wpCo/', methods=['POST']) def get_wpCo(): if request.method == 'POST': # 获取前端传来的数据 receiveData = request.data.decode('utf-8') para = str(receiveData) print(receiveData) # 对前端数据进行处理,改变成为我们需要的元组列表 array = str(para).split('#') i = 1 l = [] while array[i]: if i%3 == 1: x = int(array[i]) elif i%3 == 2: y = int(array[i]) else: sa = int(array[i]) tup = (x, y, sa) l.append(tup) i += 1 print(l) # 生成图片 gen_points_by_cor.main(l) # 返回图片 output_wp_image_data = open((output_wp_path + '1.png'), "rb").read() return output_wp_image_data # 主函数 if __name__ == '__main__': app.run("127.0.0.1", port=8080, debug=True)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。