在ac
中,我以列表格式获得了相似度得分的图像。我想使用django在浏览器中显示所有图像。如何在浏览器中显示每个图像?
ac=obj.perform(newdoc.docfile.path)
for (score,resultID) in ac:
result = cv2.imread(path1 + "/" + resultID)
# cv2.imshow("Result", result)
return HttpResponse(cv2.imshow("Result", result))
从cv2.show("Result",result)
打开一个弹出窗口并显示图像但是当我通过HttpResponse将图像传递给浏览器时,它会给出结果None。我该如何解决这个问题?
答案 0 :(得分:0)
您不能通过一个视图执行此操作。我建议有2个观点。首先使用StreamResponse显示单个图像。第二个视图将有一个模板,其中包含每个图像,并且有<img>
标记,src显示在第一个视图中。
另外你不能使用cv2.imshow(),我不是cv2专家,但据我所知,该功能是用于在窗口中显示你的图像。在您的情况下,您需要从cv2对象中读取二进制数据,并将其作为django响应传递给StreamResoponse对象。
其他可能的方法是有一个模板,为每个案例创建img标签,并按如下方式将二进制数据放入其中:
<img src="data:image/png;base64,{{ base64_data_from_cv2_object}}"/>