网络摄像头和使用flask的网络摄像头从python到网页的结果

时间:2019-09-18 06:47:41

标签: python flask

在我的应用程序中,我需要打开网页内的网络摄像头,并且还需要处理网络摄像头框架并将结果再次返回到网页。为此,我不使用按钮。我在这里找到了如何在网页中使用网络摄像头

web cam in a webpage using flask and python

但是我无法将结果传递给网页。如何将结果传递到同一网页?

Python

from flask import Flask, render_template, Response, jsonify
from camera import VideoCamera
import cv2

app = Flask(__name__)

video_stream = VideoCamera()

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

def gen(camera):
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')

@app.route('/video_feed')
   def video_feed():
        return Response(gen(video_stream),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(host='127.0.0.1', debug=True,port="5000")

Python camera.py

class VideoCamera(object):
    def __init__(self):
        self.video = cv2.VideoCapture(0)

    def __del__(self):
        self.video.release()        

    def get_frame(self):
        ret, frame = self.video.read()

        # DO WHAT YOU WANT WITH TENSORFLOW / KERAS AND OPENCV

        ret, jpeg = cv2.imencode('.jpg', frame)

        return jpeg.tobytes()

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Video Stream</title>
  </head>
  <body>
  <img src="{{ url_for('video_feed') }}" />
  </body>
</html>

camera.py 脚本中,我可以处理框架并且可以打印结果以进行记录,但是我需要将这些结果传递给网页。

我做了很多事情,但没有一个对我有用!

请帮助我。

谢谢。

0 个答案:

没有答案