我正在开发一个需要使用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及其对象.
有谁知道我做错了什么?