基于OpenCV的人脸检测

2024-10-17 04:36:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python的OpenCV库进行人脸检测。我看过网上的代码,但由于某些原因,我总是得到相同的错误。我的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)

Tags: imageimg错误cv2opencvcascadefaceprint
1条回答
网友
1楼 · 发布于 2024-10-17 04:36:05

错误意味着您的级联分类器没有正确实例化。print(frontal_face_cascade)将始终打印CascadeClassifier对象,而使用:

frontal_face_cascade.empty()

如果返回true,则
1-xml文件路径不正确。
2-您的xml文件不正确
3-由于某种原因无法加载xml文件?你知道吗

如果您确定文件和路径正确,请尝试再次加载:

frontal_face_cascade.load('haarcascade_frontalface_default.xml')

相关问题 更多 >