|
|
|
|
| from flask import Flask, render_template, Response |
| import cv2 |
| app=Flask(__name__) |
| camera = cv2.VideoCapture(0) |
|
|
|
|
| def gen(): |
| while True: |
| success, frame = camera.read() |
| if not success: |
| break |
| else: |
| detector=cv2.CascadeClassifier('haarcascade_frontalface_default.xml') |
| faces=detector.detectMultiScale(frame,1.1,7) |
| |
| for (x, y, w, h) in faces: |
| cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) |
|
|
| ret, buffer = cv2.imencode('.jpg', frame) |
| frame = buffer.tobytes() |
| yield (b'--frame\r\n' |
| b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') |
|
|
| @app.route('/') |
| def index(): |
| return render_template('index.html') |
| @app.route('/video_feed') |
| def video_feed(): |
| return Response(gen(), mimetype='multipart/x-mixed-replace; boundary=frame') |
| if __name__=='__main__': |
| app.run(debug=True) |