2017-01-04 2 views
0

Просто попадание в зрение и запуск в проблему. Вот мой код:Harr Cascade CV2 error: (-215) scn == 3 || scn == 4 в функции cv :: ipp_cvtColor

import numpy as np 
import cv2 

# multiple cascades: https://github.com/Itseez/opencv/tree/master/data/haarcascades 

#https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml 
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 
#https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_eye.xml 
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') 

cap = cv2.VideoCapture(0) 

while 1: 
    ret, img = cap.read() 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    faces = face_cascade.detectMultiScale(gray, 1.3, 5) 
    for (x, y, w, h) in faces: 
     cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) 
     roi_gray = gray[y:y + h, x:x + w] 
     roi_color = img[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('img', img) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

cap.release() 
cv2.destroyAllWindows() 

Я получаю ошибку «Ошибка OpenCV: Утверждение не удалось (SCN == 3 || SCN == 4) в сорте :: ipp_cvtColor, файл C: \ Projects \ OpenCV-питона \ opencv \ modules \ imgproc \ src \ color.cpp, строка 7456 Traceback (последний последний звонок): Файл «C: /Users/Peter/PycharmProjects/untitled/FaceDetection.py», строка 15, в gray = cv2 .cvtColor (img, cv2.COLOR_BGR2GRAY) cv2.error: C: \ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ color.cpp: 7456: ошибка: (-215) scn == 3 || scn == 4 в функции cv :: ipp_cvtColor "

Я могу найти примеры этого решения при использовании неподвижных изображений, но не для видеопотока. Я проверил img.shape, и это было 3 размера, так что это не моя проблема. Есть идеи?

Благодаря

+0

проверить, была ли img загружена/захвачена успешно. Сообщение об ошибке сообщает вам, что img не является 3-канальным цветным изображением, поэтому вы не можете преобразовать его в оттенки серого – Micka

ответ

0

Изменения:

while 1: 

к:

while ret == True: 

Надеется, что это помогает!

Смежные вопросы