Я написал и просмотрел этот код несколько раз, и мне кажется, что это очень удобно и прямолинейно (выложил фрагмент из учебника opencv) однако он все еще дает мне ошибку. Я проверил ошибку, и я понимаю, что у нее отсутствуют каналы, однако я не знаю, как это исправить. Любая помощь будет оценена по достоинству. Я использую Windows x64 и Spyder (из дистрибутива Anaconda) в качестве моей IDE. Это может быть проблема с оборудованием? (Веб-камера)OpenCV 3.0 Beta - Python - Обнаружение лица с помощью веб-камеры - код дает мне ошибку
#####################################################
# Face Detection (Video) #
#####################################################
import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
video = cv2.VideoCapture(0)
ret, frame = video.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = frame[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video.release()
cv2.destroyAllWindows()
Вот ошибка я получаю:
error: ..\..\..\..\opencv\modules\imgproc\src\color.cpp:5731:
error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
изображение пустой, он не мог читать с вашего захвата. проверьте 'ret' и' video.isOpened() '. то снова я уже вижу следующую проблему, поэтому, пожалуйста, также проверяйте 'face_cascade.isOpened()' .... – berak
@berak Вы правы. Он не читает видео. Любая идея о том, как это исправить? print video.read() (False, None – Shideh
Некоторые старые веб-камеры нуждаются в разминке и доставляют пустые кадры при запуске, поэтому, если захват открыт, вы можете попробовать прочитать несколько фиктивных кадров и снова проверить – berak