Я хочу создать прямую трансляцию с камеры, используя flask и cv2. Я могу заставить его показывать по одному кадру за раз, если я сохраню его на диск, а затем извлечу, но это очень медленно, и я хотел бы иметь непрерывную подачу камеры. Я пытаюсь закодировать вывод cv2 как jpeg, чтобы я мог отправить его как ответ
from flask import Flask
from flask import send_file
from flask import Response
import numpy as np
import cv2
app=Flask(__name__)
@app.route('/feed')
def startFeed():
cap = cv2.VideoCapture()
def getFrame():
frame = cap.read()
status, frameEncoded = cv2.imencode('.JPEG',frame)
yield frameEncoded
return Response(getFrame(),mimetype='multipart/x-mixed-replace;boundary=frame')
Когда я запускаю этот код и пытаюсь получить доступ к маршруту, он возвращает это:
status, frameEncoded = cv2.imencode('.JPEG',frame)
TypeError: Expected Ptr<cv::UMat> for argument 'img'