在Flask中动态更改图像源

时间:2018-05-24 08:29:08

标签: javascript python html flask

我正在使用Flask制作小型脸部检测应用。我希望在检测到面部时实现它们,它们将在HTML页面中更新。

在javascript部分,我使用getUserMedia将摄像头图像从客户端流式传输到服务器。

在Flask部分,我收到图像并使用此功能处理它们:

@app.route('/image.jpeg', methods=['POST'])
def on_image_captured():
    data = request.data
    image_file = request.files['image']
    image = Image.open(image_file)
    image = np.array(image)
    image = image[..., :3]
    # faces is a list of detected faces (a list of numpy array)
    faces = system.detect_faces(image)
    return ''

我的HTML有两件事要呈现:第一个是流式视​​频,另一个是检测到的面部。我的问题是,如何将检测到的面(faces变量)发送到HTML,以便它动态地在页面上呈现可变数量的面?

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式执行此操作。 可能最简单的方法(但滞后时间最多)是将图像以脸部周围的正方形发送回去。您可以使用opencv绘图功能在python中轻松做到这一点。

或者,您可以发送回json对象,然后在客户端使用元数据。看看烧瓶jsonify。您将需要在js端带有一些间隔的函数来获取json。这可能很难同步。

您也可以使用tensorflow.js在客户端执行人脸检测以避免同步。