Я не могу понять, почему моя веб-камера захватывает только один кадр (первый, когда веб-камера запускается) - PullRequest
0 голосов
/ 21 января 2020

Я написал сценарий python (с использованием OpenCV) для запуска, захвата видео с моей веб-камеры, превращения его в оттенки серого и отображения следующего видео. Когда я скомпилировал его в первый раз, он работал просто отлично, но после 3-й или 4-й компиляции он привязывался к захвату только первого кадра при запуске веб-камеры. вот код:

import numpy 
import cv2 as cv 

cap=cv.VideoCapture(0)

while(True):
    #capture frame by frame
    ret, frame = cap.read() #cv.VideoCapture(0) aslo returns a boolean true value if read correctly    
    #Operations on the frame 
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    #display
    cv.imshow('frame', gray)
    if cv.waitKey(0) &0xFF: #== ord('q'):
        break

#when everything is done, realse the capture 
cap.realse()
cv.destroyAllWindows()      

1 Ответ

1 голос
/ 21 января 2020

Итак, он показывает только один кадр и неожиданно завершает работу, или он ждет нажатия кнопки?

Если вы нажмете любую клавишу (кроме «q»), он должен получить следующий кадр. Если вы sh включите l oop и покажет прямую трансляцию, измените

if cv.waitKey(0) &0xFF: #== ord('q'):
        break

на

if cv.waitKey(1) &0xFF: #== ord('q'):
        break

Это потому, что cv.waitkey(x) ждет 'x 'миллисекунды для нажатия клавиши, но если x равен 0, он ждет неопределенно долго, пока вы не нажмете клавишу.

Кроме того, у вас есть опечатка, в cap.release()

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