Django проект не может захватывать кадры - PullRequest
0 голосов
/ 19 июня 2020

[WARN: 1] global C: \ projects \ opencv-python \ opencv \ modules \ videoio \ src \ cap_msmf. cpp (1159) CvCapture_MSMF :: grabFrame videoio (MSMF): невозможно захватить кадр . Ошибка: -2147483638

Я пытаюсь создать простой проект, чтобы показать канал веб-камеры в моем браузере, чтобы узнать, как создавать веб-приложения с Python, и эта ошибка продолжает появляться. Пытался использовать чужой код на этом сайте, чтобы узнать и увидеть, как его улучшить, но безрезультатно.

Я использую это в Visual Studio Code.

from django.shortcuts import render
from django.http.response import StreamingHttpResponse
from django.views.decorators import gzip
from cv2 import cv2
import threading
# Create your views here.

class VideoCamera(object):
def __init__(self):
    self.video = cv2.VideoCapture(0)
    (self.grabbed, self.frame) = self.video.read()
    threading.Thread(target=self.update, args=()).start()

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

def get_frame(self):
    image = self.frame
    ret, jpeg = cv2.imencode('.jpg', image)
    return jpeg.tobytes()

def update(self):
    while True:
        (self.grabbed, self.frame) = self.video.read()


cam = VideoCamera()


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


@gzip.gzip_page
def index(request):
try:
    return StreamingHttpResponse(gen(VideoCamera()), content_type="multipart/x-mixed-replace;boundary=frame")
except:  # This is bad! replace it with proper handling
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...