我已经安装了opencv(2.3.1),现在我将它用于Qt(SDK 1.1.3,Creator 2.3.0)。 (我使用过本教程:http://www.barbato.us/2011/12/20/opencv-2-3-qtcreator-windows/)
我尝试过的第一件事就是HelloWorld示例(就像官方网站上的入门一样),并且没有任何问题。我还尝试了其他一些例子。
现在我遇到了面部识别的问题。代码本身可以在这里找到:http://www.opencv.org.cn/opencvdoc/2.3.1/html/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html,但是当我尝试运行它时,程序以代码0退出,好像一切都很好,但实际上什么都没发生。经过几个小时的尝试解决它后,我发现问题本身就在CascadeClassifier变量中。因此,如果我有任何工作样本,然后我尝试初始化CascadeClassifier类的对象,程序只退出此行上的代码0。
CascadeClassifier face_cascade;
它也不依赖于此变量是否为全局变量。我也尝试初始化指针,但在对象创建时也会发生同样的事情。
最后我重新编译了整个库,现在一切都很好。 谢谢你的答案!
答案 0 :(得分:0)
我会将数据从OCV复制到包含可执行文件的目录。样本面部检测数据位于OpenCV OpenCV-2.3.1/data/haarcascades/
的源树中。将haarcascade_frontalface_alt.xml
和haarcascade_eye_tree_eyeglasses.xml
从那里复制到程序的目标目录。
答案 1 :(得分:-1)
您可以使用以下代码检查分类器是否已成功加载:
if (!cascade.load(classifierdir)) {
printf("Unable to load classifier from %s\n", classifierdir);
return 1;
}