2012-03-12 51 views
2

我已经安装了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/)我已经试过OpenCV CascadeClassifier初始化

第一件事就是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

做你的代码加载'haarcascade_frontalface_alt.xml'成功? – 2012-03-12 10:35:10

+1

我该如何检查?我的程序在加载前,在原始消息 – user1263702 2012-03-12 12:42:18

+0

中写入的行尝试调试失败!或者,如果您对调试器没有经验,请在感兴趣的行前后添加一些打印语句。 – 2012-03-12 12:50:34

回答

0

我会将数据从OCV复制到包含可执行文件的目录。样本人脸检测数据位于OpenCV OpenCV-2.3.1/data/haarcascades/的源树中。从那里复制haarcascade_frontalface_alt.xmlhaarcascade_eye_tree_eyeglasses.xml到您程序的目标目录。

+0

我已经做到了,但程序关闭在CascadeClassifier的构造函数调用(不管它是否与文件名称调用;文件名本身是正确的,我已经检查过了) – user1263702 2012-03-12 18:31:24

-1

您可以检查您的分类与代码,这些成功加载:

if (!cascade.load(classifierdir)) { 
    printf("Unable to load classifier from %s\n", classifierdir); 
    return 1; 
} 
+1

我无法尝试它,因为如果我这样做,程序将在创建“cascade”变量的行关闭,例如:'code' CascadeClassifier cascade; 'code' – user1263702 2012-03-12 18:32:12