Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何修复服务器”;回应";是否允许客户端查看图像?_Python_Opencv_Flask_Flask Restful - Fatal编程技术网

Python “如何修复服务器”;回应";是否允许客户端查看图像?

Python “如何修复服务器”;回应";是否允许客户端查看图像?,python,opencv,flask,flask-restful,Python,Opencv,Flask,Flask Restful,我正在编写一个涉及服务器上图像处理的小应用程序。 客户机选择一个图像并将其发送到服务器上,服务器进行一些奇特的处理(使用OpenCV库)并将新图像返回给客户机 我有以下片段 这是我的服务器。py: r=请求 #将图像数据字符串转换为uint8。 nparr=np.frombuffer(r.data,np.uint8) #解码图像。 img=cv2.imdecode(nparr,cv2.IMREAD\u颜色) #在这里做一些奇特的加工。 [...] #构建一个响应dict以发送回客户端。 响应={

我正在编写一个涉及服务器上图像处理的小应用程序。 客户机选择一个图像并将其发送到服务器上,服务器进行一些奇特的处理(使用OpenCV库)并将新图像返回给客户机

我有以下片段

这是我的服务器。py

r=请求
#将图像数据字符串转换为uint8。
nparr=np.frombuffer(r.data,np.uint8)
#解码图像。
img=cv2.imdecode(nparr,cv2.IMREAD\u颜色)
#在这里做一些奇特的加工。
[...]
#构建一个响应dict以发送回客户端。
响应={“消息”:img_encoded.tostring()}
#使用jsonpickle对响应进行编码。
[...]
返回响应(状态=200,
响应=响应\u酸洗,
mimetype=“应用程序/json”)
这是我的客户。py

#加载图像。
img=cv2.imread(“dog.jpg”)
#将图像编码为jpg。
_,img_encoded=cv2.imencode('.jpg',img)
#发送带有映像的HTTP请求并接收响应。
response=requests.post(URL,
标题=标题,
data=img_encoded.tostring())
#从响应中获取图像。
json=json.load(response.text)
image_data=json[“message”]
img_灰度=字节(图像_数据['py/b64'],'utf-8')
#将图像数据字符串转换为uint8。
nparr=np.frombuffer(图像灰度,np.uint8)
#解码图像。
img=cv2.imdecode(nparr,cv2.IMREAD\U灰度)
imwrite(“processed.jpg”,img)
我希望当前文件夹中的文件processed.jpg可以作为输出,但当我打开时,会出现以下消息:

您可以打开文件“processed.jpg”,因为它是空的

我错过了什么?通过HTTP将图像从客户端转换和传输到服务器,以及从服务器到客户端,需要遵循特定的标准(或模式)


感谢您的帮助

为什么不在本地将映像临时存储在服务器上呢。然后使用python从图像的url下载图像,并将其转换为numpy数组。只是一个解决办法是的,我显然可以这样做,但是,我不是出于不同的原因打算在服务器上存储(甚至临时)映像。为什么不在本地将映像临时存储在服务器上呢。然后使用python从图像的url下载图像,并将其转换为numpy数组。只是一个解决办法是的,我显然可以这样做,但是,我不是出于不同的原因打算在服务器上存储(甚至暂时)映像吗。