Ниже приведен соответствующий код
import cv2 as cv
import numpy as np
video = cv.VideoCapture(0) #tells obj to use built in camera\
#create a face cascade object
face_cascade =
cv.CascadeClassifier(r"C:\Users\xxxxxxx\AppData\Roaming\Python\Python36\site-
packages\cv2\data\haarcascade_frontalcatface.xml")
a = 1
#create loop to display a video
while True:
a = a + 1
check, frame = video.read()
print(frame)
#converts to a gray scale img
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
#create the faces
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
for(x, y, w, h) in faces:
print(x, y, w, h)
#show the image
cv.imshow('capturing', gray)
key = cv.waitKey(1) #gen a new frame every 1ms
if key == ord('q'): #once you enter 'q' the loop will be exited
break
print(a) #this will print the number of frames
#captures the first frame
video.release() #end the web cam
#destroys the windows when you are not defined
cv.destroyAllWindows()
Код отображает видео, снятое с камеры моей веб-камеры. Несмотря на это, OpevCV, похоже, не обрабатывает какие-либо кадры, так как все кадры выглядят так
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]]
что я предполагаю означает, что они пусты.
Я полагаю, это мешает алгоритму обнаружить мое лицо в кадре. У меня такое ощущение, что проблема заключается в кодеке ffmpeg, но я не совсем уверен, как действовать, даже если это так.
ОС: Windows 10
Язык: Python
РЕДАКТИРОВАТЬ: фрейм не пустой, но все значения в массиве, кажется, '0'
Почему рамка пуста и как я могу заставить OpenCV обнаружить моё лицо в кадре?