使用OpenCV和人脸检测>]

问题描述 投票:0回答:1

我正在尝试使用Python的OpenCV lib进行人脸检测。我已经从网上看到了代码,但是由于某种原因,我总是遇到相同的错误。我的haarcascades.py和我的image位于名为FaceDetection的文件夹中。这是错误和错误所在的行:

faces = frontal_face_cascade.detectMultiScale(gray, 1.3, 5)

cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

我尝试了在此网站上看到的不同方法,但始终会遇到相同的错误。我在做什么错?

import numpy as np
import cv2

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

frontal_face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# I have also tried this: r'C:\Users\Pc\Desktop\FaceDetection\haarcascade_frontalface_default.xml'

print(frontal_face_cascade)

my_image = r'C:\Users\Pc\Desktop\FaceDetection\barcelona.jpg'

img = cv2.imread(my_image, 1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

print(gray)
cv2.imshow('img',img)

faces = frontal_face_cascade.detectMultiScale(gray, 1.3, 5)
print(faces)
for (x,y,w,h) in faces:

    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

cv2.imshow('img',img)

我正在尝试使用Python的OpenCV库进行人脸检测。我已经从网上看到了代码,但是由于某种原因,我总是遇到相同的错误。我的haarcascades,.py和我的图像位于同一文件夹中...

python opencv face-detection
1个回答
0
投票

错误表示您的CascadeClassifier没有正确实例化。 print(frontal_face_cascade)将始终打印CascadeClassifier对象,而是使用:

© www.soinside.com 2019 - 2024. All rights reserved.