Python 使用flask和OpenCV显示实时网络摄像机视频时出现问题

Python 使用flask和OpenCV显示实时网络摄像机视频时出现问题,python,opencv,flask,computer-vision,Python,Opencv,Flask,Computer Vision,我一直在做一个项目,其中flask和OpenCV结合在一起。我想做的是,当按下按钮时,OpenCV应该从网络摄像头读取实时视频并显示出来。它也是如此,但只是第一次,当第二次按下按钮时,它会继续加载程序并停止 我附上了程序代码,以便大家能很好地理解这个问题。 这是main.py中的内容: from flask import Flask, render_template, request, redirect, url_for import cv2 import os app = Flask(__n

我一直在做一个项目,其中flask和OpenCV结合在一起。我想做的是,当按下按钮时,OpenCV应该从网络摄像头读取实时视频并显示出来。它也是如此,但只是第一次,当第二次按下按钮时,它会继续加载程序并停止

我附上了程序代码,以便大家能很好地理解这个问题。 这是main.py中的内容:

from flask import Flask, render_template, request, redirect, url_for
import cv2
import os

app = Flask(__name__)
app.config['SECRET_KEY'] = 'sdjflajsdhfj23h4jkhwkjhasdjkhdkjfhsfd' 

@app.route('/')
def get_homepage():
    return render_template('index.html')

@app.route('/add-sample', methods = ['POST'])
def add_sample():
    if request.method == 'POST':

        cam = cv2.VideoCapture(0)

        if not cam.isOpened():
            return redirect(url_for('get_homepage'))

        while (cam.isOpened()):
            con, frame = cam.read()

            if con:
                cv2.imshow('test', frame)

                if cv2.waitKey(25) == 27:
                    break
            else:
                break
        cam.release()
        cv2.destroyAllWindows()    

        return redirect(url_for('get_homepage'))

if __name__ == "__main__":
    app.run(debug=True)
与项目关联的模板文件的内容为:

<html>
  <head>
    <title>Streaming </title>
  </head>
  <body>
    <h1>Streaming </h1>
    <form action="{{url_for('add_sample')}}" method="POST">
      <input type="submit" value="add sample">
    </form>
  </body>
</html>

流动
流动

问题可能在于释放捕获的帧,但我也尝试过,但没有帮助我

我不是cv2方面的专家,但您是否尝试过在休息前将release()和destroyAllWindows()置于
if
条件下?我不是cv2方面的专家,但您是否尝试过在休息前将release()和destroyAllWindows()置于
if
条件下?