OpenCV级联分类器初始化

OpenCV CascadeClassifier initialization

本文关键字:初始化 分类器 级联 OpenCV      更新时间:2023-10-16

我已经安装了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的例子(比如官方网站上的Getting Started中的例子),它没有任何问题。我还尝试了其他一些例子。

现在我在人脸识别的例子上遇到了一个问题。代码本身可以在这里找到: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;

它也不取决于这个变量是否全局。我也尝试过初始化指针,但在创建对象时也发生了同样的事情。


最后,我重新编译了整个库,现在一切都很好。谢谢你的回答!

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

您可以使用以下代码检查分类器是否成功加载:

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