c++ - OpenCV facedetect 示例不会加载级联分类器 xml

标签 c++ c image-processing opencv face-detection

我正在开发一个需要使用 Haar 级联分类器进行 OpenCV 对象检测的应用程序。 我在 64 位 Windows 机器上使用 OpenCV 2.3.1 和 VS2010。 我自己编译和构建了 OpenCV,没有使用任何预编译的二进制文件。

首先,我想开始研究 OpenCV 中包含的示例 facedetect.cpp。 我构建它没有错误,但是当我尝试运行它时,它不会打开级联分类器 xml 文件(CascadeClassifier.load() 函数返回 false)。我没有对示例源代码进行任何更改。

我使用的是与 OpenCV 一起分发的 xml 文件,因此问题不在于 xml 文件。 我还确保应用程序可以使用简单的 fopen 访问和读取文件。

我相信(但不确定)问题似乎是级联分类器属于“旧”类型。 但在 OpenCV 文档中明确暗示新的 CascadeClassifier 对象可以打开“旧”和"new"级联分类器。

这是一个链接:http://opencv.itseez.com/modules/objdetect/doc/cascade_classification.html#cascadeclassifier-load

我什至尝试使用预编译的 OpenCV2.2 二进制文件,它与该 xml 配合得很好。然后我尝试编译2.2示例源代码,还是无法加载xml。

我知道我可以尝试使用旧对象 CvHaarClassifierCascade,但我更喜欢使用最新版本的 OpenCV 及其对象。

有谁知道我做错了什么吗?

最佳答案

给出xml文件的完整路径

String face = "c:/data/xml/haarcascade_frontalface_alt.xml";

它应该有效!

关于c++ - OpenCV facedetect 示例不会加载级联分类器 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152983/

相关文章:

c++ - 在其他编译器中使用 _DEBUG 定义,然后是 Visual Studio

c++ - 什么是 c c++ 的最佳数据库连接支持库框架?

我们可以在没有动态内存分配的情况下在 C 中使用双向链表吗?

c++ - 追踪连接的像素

c++ - Visual Studio 2017 - 转到定义转到 .h 文件而不是 .cpp

c++ - 带空格的字符串 with getline(cin,str);错误

c++ - 从代码中删除 SAL 注释是否安全?

c - 如何在vc++2008上编译C99源码而不改变原有功能?

python - 如何计算方向轴?

c++ - 视频稳定