opencv cascade.detectMultiScale creates error: (-215) !empty()

opencv cascade.detectMultiScale creates error: (-215) !empty()

我正在按照 this 教程来了解 haar 功能。在编写以下代码时:

import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('Sachin.jpeg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

出现以下错误:

File "<ipython-input-6-0b479e459b0f>", line 1, in <module>
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    error: /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/objdetect/src/cascadedetect.cpp:1639: error: (-215) !empty() in function detectMultiScale

(Sachin 是我从 google 下载的图像,大小为 (237,237,3),转换为灰色后为 (237,237),最小值=23,最大值=210。我使用的是 opencv 3.1。 0 with python 3.6,使用命令 conda install -c menpo opencv3 安装。我正在尝试 this 解决方案但无法在中找到 xml 文件我的桌面。如何解决问题。

您需要为 Haar Cascade 指定 XML 文件的完整路径。

在 Ubuntu 16.04 上,可以在 /usr/share/opencv/haarcascades.

中找到这些文件

您应该与 xml 文件位于同一目录中。希望这对您有所帮助!

您需要为 haarcascade_frontalface_default.xmlhaarcascade_eye.xml 提供 完整路径

使用 cv2.data.haarcascades 会给你路径。

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades+'haarcascade_frontalface_default.xml')

eye_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades+'haarcascade_eye.xml')