我使用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)。
答案 0 :(得分:2)
我在CascadeClassifier
和FileStorage
时遇到了同样的问题。
例如,如果您尝试这样做:
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添加了完全控制,并且它有效。