Почему OpenCv возвращает false ret, frame = cap.read ()? - PullRequest
0 голосов
/ 28 марта 2020

Я просто пытаюсь получить изображение моей веб-камеры в python с OpenCV 4.2.0 (на Spyder - python 3.7 на windows 10). Я просто скопировал и скопировал код документации OpenCV (см. Ниже), и большую часть времени он печатает: «Не удается получить кадр (конец потока?). Выход ...» Итак, я знаю, что ошибка возникает из-за: ret, frame = cap.read (). Но я не знаю, как это исправить. Иногда он печатает: «Не удается открыть камеру», а затем выходит из консоли Spyder и запускает новую, а иногда просто отлично работает ... Кто-нибудь может помочь? Вот мой код:

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
    print("Cannot open camera")
    exit()

while True:
    # Capture frame-by-frame
    ret, frame = cap.read()

    # if frame is read correctly ret is True
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break

    # Our operations on the frame come here
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv.imshow('frame', gray)
    if cv.waitKey(1) == ord('q'):
        break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()

Добавлена ​​последняя строка для закрытия окна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...