OpenCV级联分类器初始化
OpenCV CascadeClassifier initialization
我已经安装了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.xml
和haarcascade_eye_tree_eyeglasses.xml
从那里复制到程序的目标目录。
您可以使用以下代码检查分类器是否成功加载:
if (!cascade.load(classifierdir)) {
printf("Unable to load classifier from %sn", classifierdir);
return 1;
}
- 阵列必须使用大括号封闭的初始器进行初始化
- 初始化迭代器错误 C++ 在 GCC 编译器中
- C++值初始化矢量迭代器比较
- 将初始化器列表/聚合初始化转发到 std::array 成员
- 为什么"std::uninitialized_copy"通常取消对未初始化内存的迭代器的引用不是未定
- HBOEHM 垃圾回收器未初始化的值错误和泄漏
- 无法取消引用值初始化迭代器
- C++ 初始化构造器初始值设定项列表中的模板数组
- "变量":函数中函数作用域不允许初始化的自动或寄存器变量'naked'
- 制作可用于初始化向量的迭代器
- 自动,带括号和初始化器列表
- Clang++ 6.0 内存清理器未报告返回值指示条件分支的函数中的未初始化局部变量
- 为什么 2 个未初始化的 std::set::迭代器相等?
- C++ - 类方法函数指针unordered_map的初始化器列表
- 如何在C++中实现初始化终结器
- 在 dll 中初始化记录器
- OpenCV级联分类器初始化
- 在wxGLCanvas上调整大小之前初始化着色器时出现问题
- C++ 模板类编译错误:令牌之前'<'预期的初始化声明器
- Eclipse CDT -无法打开编辑器:无法初始化编辑器