运行面部识别代码时出现opencv错误

时间:2020-07-03 22:46:42

标签: python opencv

我在这里关注opencv教程:https://www.youtube.com/watch?v=PmZ29Vta7Vc

在11:36,当他运行他的代码时,它可以正常工作,但是当我运行我的代码时,我得到了一个错误:

Traceback (most recent call last):
  File "C:/Users/Joshua/OneDrive/VscodePrograms/MyPythonFolder/facialRec/main.py", line 11, in <module>
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback

代码如下:

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('casades/data/haardcascade_frontalface_alt2.xml')

cap = cv2.VideoCapture(0)

while (True):
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5)
    for (x, y, w, h) in faces:
        print(x, y, w, h)
    
    cv2.imshow('frame', frame)
    if cv2.waitKey(20) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

请帮助!

1 个答案:

答案 0 :(得分:0)

问题出在CascadeClassifier的路径上:

face_cascade = cv2.CascadeClassifier('cascades/data/haarcascade_frontalface_alt2.xml')

我认为现在应该可以正常工作了。