Python 如何使用Django Streaming HTTPS响应正确渲染图像?
我用Python编写了一些代码,它利用(除其他软件包外)逐帧浏览选定的视频,检查帧中是否有人(请参阅),然后返回找到人的所有帧 目前的目标是在web浏览器中动态显示这些图像。我用这个答案作为指导: 我的代码如下:Python 如何使用Django Streaming HTTPS响应正确渲染图像?,python,django,opencv,Python,Django,Opencv,我用Python编写了一些代码,它利用(除其他软件包外)逐帧浏览选定的视频,检查帧中是否有人(请参阅),然后返回找到人的所有帧 目前的目标是在web浏览器中动态显示这些图像。我用这个答案作为指导: 我的代码如下: def stream_response(request): return StreamingHttpResponse(detect()) def detect(): frame_count=0 while(frame_count < num_frames
def stream_response(request):
return StreamingHttpResponse(detect())
def detect():
frame_count=0
while(frame_count < num_frames):
ret, frame = capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
image_pil=Image.fromarray(gray)
response = HttpResponse(content_type="image/jpeg")
image_pil.save(response, "JPEG")
yield response
yield ""*1024
time.sleep(1)
frame_count+=1
def流_响应(请求):
返回StreamingHttpResponse(detect())
def detect():
帧计数=0
而(帧数<帧数):
ret,frame=capture.read()
灰色=cv2.CVT颜色(边框,cv2.COLOR\u BGR2GRAY)
image\u pil=image.fromarray(灰色)
响应=HttpResponse(content_type=“image/jpeg”)
图像保存(响应,“JPEG”)
屈服响应
收益率“*1024”
时间。睡眠(1)
帧计数+=1
然而,当我使用Django中的StreamingHTTPResponse特性来生成响应(实现a的方法)时,我在浏览器中看到的响应是杂乱无章的(参见下图)。
但是,当我使用HTTPResponse返回响应时,当指向相应的端口时,图像在浏览器中显示良好
我试过各种各样的测试,但还是弄不明白。我的理论是,这可能是因为浏览器无法在给定的时间内渲染图像,但我不确定
更新:最终直接从Python为原型应用程序生成HTML。就目前的目的而言,这确实是一个诀窍,但我们将继续对此进行探索。您需要像这样的分布式任务队列系统。你可以这样申请 您的主页面(执行流从这里开始)
您只能返回一个图像/请求,以便浏览器正确显示它。