错误处理:解决 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中文网其他相关文章!