Как я могу использовать OpenCV с Flask для захвата видео / изображения с Клиента? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь создать приложение Flask, которое позволит пользователям использовать их веб-камеру в качестве детектора движения, и у меня есть рабочий код в OpenCV, который обнаруживает движение, но сейчас он использует только кулачок локальной машины (т.е. сервер). Я не знаю, как захватывать изображения / видео с клиента, а не с сервера, а затем передавать его для обнаружения движения с помощью OpenCV.

Я нашел эту статью https://kirupa.com/html5/accessing_your_webcam_in_html5.htm, которая использует HTML5 и JS для захвата канала от клиента, но не показывает способ использовать его с OpenCV.

Вот код для маршрута в приложении фляги

@app.route('/camera')
@login_required
def camera():
    return Response(get_frame(), mimetype='multipart/x-mixed- replace; boundary=frame')

А вот get_frame (), переданный в ответе выше

def get_frame():
    camera_port = 0  # Assigns which webcame to detect if user has more than one webcam
    camera = cv2.VideoCapture(camera_port)  # Creates a camera object
    first_frame = None  # This variable will store the first image as a base image for comparing with images thereafter

    # Starts the while loop to stream feed
    while True:
        status = 0
        check, frame = camera.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # Converts to gray scale
        gray = cv2.GaussianBlur(gray, (21, 21), 0)
        ....
        ....
        imgencode = cv2.imencode('.jpg',frame)[1]
        image_data = imgencode.tostring()
        yield (b'--frame\r\n'
             b'Content-Type: text/plain\r\n\r\n' + imageData + b'\r\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...