在POST响应中发送OpenCV图像

时间:2017-09-28 10:43:59

标签: python django opencv

我希望在对图像执行一些处理后通过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')

在邮差中没有显示任何内容。

1 个答案:

答案 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")