我正在尝试将图像从1 Flask
应用发送到另一个,即从1端点发送到另一个端点,但是我不知道需要执行什么转换才能正确发送和接收它。我正在使用以下代码,但在接收方获得了NoneType
对象
发送方烧瓶应用代码
import requests
data = {}
data['image'] = # <image>
res = requests.post('http://<IP>:<PORT>/', data = data)
接收器烧瓶应用代码
from flask import request
import numpy as np
import cv2 as cv
f1 = request.form.get('image')
print(type(f1))
f2 = np.fromstring(f1, np.uint8)
print(type(f2), f2.shape)
f3 = cv.imdecode(f2, cv.IMREAD_COLOR)
print(type(f3))
我尝试发送2种类型的图像。在接收方输出之后,发送<class 'PIL.Image.Image'>
类型的图像产品
<class 'str'>
<class 'numpy.ndarray'> (62,)
<class 'NoneType'>
在接收方输出之后,发送<class 'numpy.ndarray'>
类型的发送图像
<class 'str'>
<class 'numpy.ndarray'> (3,)
<class 'NoneType'>
答案 0 :(得分:1)
使用requests.post(url, files={'image': open('image.jpg', 'rb')})
发送图像,请参见https://requests.readthedocs.io/en/master/user/quickstart/#post-a-multipart-encoded-file。
通过file = request.files['image']
接收图像,例如将其存储在file.save('image.jpg')
中。