【问题标题】:opencv cascade.detectMultiScale creates error: (-215) !empty()opencv cascade.detectMultiScale 创建错误:(-215) !empty()
【发布时间】:2018-04-30 00:19:26
【问题描述】:

我正在关注 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),min=23,max=210。我正在使用 opencv 3.1.0 和 python 3.6,已安装使用命令 conda install -c menpo opencv3。我正在尝试this 解决方案,但无法在我的桌面上找到 xml 文件。如何解决问题。

【问题讨论】:

  • 你是如何安装 OpenCV 的?
  • 我已经提到了这个问题。 conda install -c menpo opencv3
  • 你在 Linux 上工作吗?还是 Windows?
  • Linux (ubuntu) 16.04 版本 LTS

标签: python opencv opencv3.0 opencv3.1


【解决方案1】:

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

在 Ubuntu 16.04 上,这些文件可以在 /usr/share/opencv/haarcascades 中找到。

【讨论】:

  • 我没有找到这个位置 /home/nd/share/opencv/haarcascades。再次更改相同的错误后
  • 为什么是/home/nd?我说/usr。你是 Ubuntu 新手吗?
  • 您仍然没有正确的道路...您阅读我的答案了吗?应该是'/usr/share/opencv/haarcascades/haarcascades_fronta‌​lface_default.xml'
  • 你能打开一个终端并运行这些命令吗:cd /usr &amp;&amp; find -name haarcascade* 这应该会给你 xml 文件的位置。确保路径正确。如果没有出现,则文件不存在,您需要在其他地方搜索它们或验证您的 OpenCV 安装
  • 其他简单的解决方案是直接下载 haar 文件并将它们放在您运行程序的同一文件夹中,这样您就不需要放置整个路径并且您的程序可以运行。如果您更改环境,这也将使您的程序正常工作。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 2018-05-24
    • 2022-06-22
    • 2021-11-02
    • 2015-08-11
    • 1970-01-01
    • 2017-11-07
    相关资源
    最近更新 更多