如何将图像从烧瓶服务器发送到前端的javascript显示?

时间:2016-06-25 15:57:18

标签: javascript opencv canvas flask

我正在使用opencv(python 2.7)在我的烧瓶应用程序中通过网络摄像头捕获图像。我想在前端显示此图像到客户端以获取鼠标点击图像的坐标。如何编写要发送的函数和分别通过flask和javascript接收图像。

烧瓶服务器代码:

from flask import Flask,render_template
import cv2

app = Flask(__name__)

@app.route('/')
def capture_image(self):
    self.cam = cv2.VideoCapture(0)
    self.img = self.cam.read()
    self.cam.release()
    render_template(index.html,ob=self.img)

@app.route('/index')
#display image in html

if __name__=='__main__':
    app.run()

javascript代码:

<html>
<head>
<title> image </title>
</head>
<body>
<img src = "{{ url_for('imagefield') }}">
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我的建议是使用imwrite在“static / filename.jpg”中保存图像。然后发送URL而不是实际图像,让你的div使用图像文件重新加载它。我已经发送了整个图像,当我检查POSTMAN时加载大约需要10秒钟,然而,它在浏览器中根本没有任何问题。如果您坚持要发送该文件,请参阅flask return image created from database

我正在做这样的事情:

flask:
return jsonify({'image_url': imgPath})

part of ajax request:
success: function (data) {
      console.log(data);
      $('#myimg').html('<img class="img-responsive"  src="'+data.image_url+'"/>');
    }

希望这有帮助。