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

How to load xml cascade file in openCV 2.3.1

本文关键字:加载 xml 级联 文件 openCV      更新时间:2023-10-16

我尝试使用C++和OpenCV 2.3.1库在Visual Studio 2010上构建人脸检测应用程序因此,我声明字符串类型并初始化:

字符串face_cascade_name="haarcascade_foronalface_alt.xml";

接下来,我创建一个级联分类器类的对象:

级联分类器face_cascade;

我加载级联:

if(!face_cascade.load(face_cascode_name)){printf("--(!)加载错误\n");return-1;};

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

我看到了这种交流:程序"[1288]OpenCV2.0.exe:Native"已退出,代码为-1(0xffffff)。

我对CascadeClassifierFileStorage也有同样的问题。

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

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

也许,它不会起作用。

在我的案例中,我将VC++从调试模式传递到发布模式,指定了最后没有d.lib文件(例如opencv_core231.lib),现在就可以工作了。

在我的案例(OSX 10.9)中,我输入了整个路径,而不是简单地输入"haarcascade_fronalface_alt.xml",比如"/Users/xxx/Desktop/opencv-2.4.7/data/haarcascades/haarcascode_fronalace_alt.xml"。祝好运

在我的案例(win7 64,VS 10 express)中,更改xml文件的文件权限解决了这个问题,我添加了"所有人都可以完全控制",它起到了作用。