如何在openCV 2.3.1中加载xml级联文件

时间:2012-01-19 22:56:20

标签: c++ xml visual-studio-2010 opencv

我使用C ++和OpenCV 2.3.1库在Visual Studio 2010上尝试使用bulid face detect应用程序 所以,我声明String类型并初始化:

  

String face_cascade_name =“haarcascade_frontalface_alt.xml”;

接下来,我创建了一个CascadeClassifier类的对象:

  

CascadeClassifier face_cascade;

我加载了级联:

  

if(!face_cascade.load(face_cascade_name)){printf(“ - (!)Error loading \ n”);返回-1; };

项目bulid和调试没有问题,但是当我运行应用程序和应用程序时尝试加载级联程序崩溃!

我看到这种沟通: 程序'[1288] OpenCV2.0.exe:Native'已退出,代码为-1(0xffffffff)。

3 个答案:

答案 0 :(得分:2)

我在CascadeClassifierFileStorage时遇到了同样的问题。

例如,如果您尝试这样做:

FileStorage fs(xml_fname, FileStorage::READ);
if (!fs.isOpened())
{
    cout<<"can not read xml"<<endl;
}

可能它不会起作用。

在我的情况下,我将VC ++从调试模式传递到Release模式,最后指定了.lib个文件而没有d(例如opencv_core231.lib)并且它现在正常工作。

答案 1 :(得分:1)

在我的情况下(OSX 10.9),我输入整个路径而不是简单的&#34; haarcascade_frontalface_alt.xml&#34;,像&#34; /Users/xxx/Desktop/opencv-2.4.7/data/ haarcascades / haarcascade_frontalface_alt.xml&#34 ;.祝你好运

答案 2 :(得分:0)

在我的情况下(win7 64,VS 10 express),更改xml文件的文件权限解决了这个问题, 我为Everyone添加了完全控制,并且它有效。