【发布时间】:2011-12-30 11:30:21
【问题描述】:
我正在开发一个需要使用 Haar 级联分类器进行 OpenCV 对象检测的应用程序。 我在 64 位 Windows 机器上使用 OpenCV 2.3.1 和 VS2010。 我自己编译和构建了 OpenCV,没有使用任何预编译的二进制文件。
首先,我想开始处理 OpenCV 中包含的示例 facedetect.cpp。 我没有错误地构建它,但是当我尝试运行它时,它不会打开级联分类器 xml 文件(CascadeClassifier.load() 函数返回 false)。我没有对示例源代码进行任何更改。
我使用的是随 OpenCV 分发的 xml 文件,因此问题不在于 xml 文件。 我还确保应用程序可以使用简单的 fopen 访问和读取文件。
我相信(但不确定)问题似乎在于级联分类器属于“旧”类型。 但在 OpenCV 文档中明确暗示新的 CascadeClassifier 对象可以打开“旧”和“新”级联分类器。
这是一个链接:http://opencv.itseez.com/modules/objdetect/doc/cascade_classification.html#cascadeclassifier-load
我什至尝试使用预编译的 OpenCV2.2 二进制文件,它与该 xml 配合得非常好。然后我尝试编译2.2示例源代码,再次无法加载xml。
我知道我可以尝试使用旧对象 CvHaarClassifierCascade,但我更喜欢使用最新版本的 OpenCV 及其对象。
有人知道我做错了什么吗?
【问题讨论】:
标签: c++ c image-processing opencv face-detection