Error: (-215) !empty() in Function detectorMultiScale
尝试使用 OpenCV 的 detectorMultiScale 函数时,您可能会遇到错误: (-215) !empty() 函数中的 detectorMultiScale。此错误通常是由于级联分类器文件无效或损坏而发生。
要解决此问题,请尝试以下操作:
确保正确加载分类器文件
CascadeClassifier 构造函数需要包含分类器数据的 XML 文件的有效路径。在您的代码中:
<code class="python">face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')</code>
确保这些路径指向 XML 文件的正确位置。如果您不确定位置,可以从 OpenCV GitHub 存储库或其他可信来源获取预训练的分类器文件。
使用 OpenCV 的数据属性
或者,您可以使用 OpenCV 的 data 属性自动定位分类器文件:
<code class="python">face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')</code>
此方法不需要您指定分类器文件的绝对路径。
检查分类器文件
验证 haarcascade_frontalface_default.xml 和 haarcascade_eye.xml 文件是否存在于指定目录中。如果它们丢失或损坏,请从信誉良好的来源重新下载它们。
确保您的代码编译并运行
解决了分类器文件的问题后,确保您的代码编译和运行时没有错误。如果问题仍然存在,请尝试检查输入图像是否存在任何问题,例如格式不正确或损坏。
以上是为什么在使用 OpenCV 的人脸检测时,函数 detectorMultiScale 中出现错误'-215) !empty()”?的详细内容。更多信息请关注PHP中文网其他相关文章!