我希望在对图像执行一些处理后通过POST响应发送图像。
cv2.putText(img,text, (x,y-15), font, 1,(255,0,0),2,cv2.LINE_AA)
我在img
获得了数据。如何在post请求中封装图像?我试过
return HttpResponse(img, content_type='image/jpg')
在邮差中没有显示任何内容。
答案 0 :(得分:0)
您可以使用http.client发送以下数据,此功能是在POST请求中将opencv帧发送到Flask服务器的功能
import http.client as httplib
conn = httplib.HTTPConnection('127.0.0.1', timeout=5)
def sendtoserver(frame):
imencoded = cv2.imencode(".jpg", frame)[1]
headers = {"Content-type": "text/plain"}
try:
conn.request("POST", "/", imencoded.tostring(), headers)
response = conn.getresponse()
except conn.timeout as e:
print("timeout")
return response
如果您使用的是Flask,则可以使用以下代码在服务器端接收框架
def process():
frame = request.data
image = cv2.imdecode(np.fromstring(frame, dtype=np.uint8), cv2.IMREAD_COLOR)
return Response('0', mimeType="multipart/x-mixed-replace")