首页  >  文章  >  后端开发  >  \“错误:(-215) !empty() 函数中的 detectorMultiScale:为什么我的人脸检测失败,如何修复它?\”

\“错误:(-215) !empty() 函数中的 detectorMultiScale:为什么我的人脸检测失败,如何修复它?\”

Patricia Arquette
Patricia Arquette原创
2024-10-25 10:38:30579浏览

错误处理:解决 OpenCV 中的“错误:(-215) !empty() in function detectorMultiScale”

当尝试使用detectorMultiScale() 方法来检测图像中的人脸,您可能会遇到错误“error: (-215) !empty() in function detectorMultiScale”。当人脸检测的关键组件——人脸级联分类器未正确加载时,通常会出现此错误。

要解决此问题,必须确保提供给 Haar 级联 XML 文件的路径有效。在提供的代码片段中,级联分类器正在加载硬编码路径,这对于您的系统可能不准确。相反,OpenCV 提供了一个方便的属性来自动定位这些文件。

下面更新的代码演示了如何使用 OpenCV 的属性来纠正问题:

<code class="python">import cv2

# Use OpenCV's property to locate the Haar cascade XML files
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')

# Proceed with face detection
img = cv2.imread('2015-05-27-191152.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
    img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)</code>

通过利用 OpenCV 的属性,您可以确保人脸级联分类器已正确加载,解决了“error: (-215) !empty() in function detectorMultiScale”问题。

以上是\“错误:(-215) !empty() 函数中的 detectorMultiScale:为什么我的人脸检测失败,如何修复它?\”的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn