Traceback (most recent call last):
File "/Users/jadalada/Documents/GitHub/allTests/OpenCV (Py)/VCV.py", line 14, in <module>
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
cv2.error: OpenCV(4.1.0) /Users/travis/build/skvark/opencv-python/opencv/modules/objdetect/src/cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function
import numpy as np
import cv2 as cv
faceCascade = cv.CascadeClassifier('Casscades/haarcascade_frontalface_default.xml')
eyeCascade = cv.CascadeClassifier('Casscades/haarcascade_eye.xml')
smileCascade = cv.CascadeClassifier('Casscades/haarcascade_smile.xml')
cap = cv.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
eyes = eyeCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
smile = smileCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
我不确定为什么会发生这种情况,因为另一个完全相同的python文件对于完全相同的完全相同的EXACT代码也是如此。
import numpy as np
import cv2 as cv
faceCascade = cv.CascadeClassifier('Casscades/haarcascade_frontalface_default.xml')
eyeCascade = cv.CascadeClassifier('Casscades/haarcascade_eye.xml')
smileCascade = cv.CascadeClassifier('Casscades/haarcascade_smile.xml')
cap = cv.VideoCapture(0)
while(True):
ret, frame = cap.read()
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
eyes = eyeCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
smile = smileCascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
这是另一个文件中完全相同的代码,可以完美运行且没有错误。
错误很可能表示您的CascadeClassifier没有正确实例化。使用:
faces.empty()
检查分类器是否正确实例化。如果返回true,则1-您的xml文件路径错误。2-您的xml文件不正确3-由于某种原因无法加载xml文件?
如果您确定文件和路径正确,请尝试重新加载:
faces.load('PATH_TO_XML')