faceRecognize没有成员函数getMat问题解决

来源:互联网 发布:淘宝小号出售批发 编辑:程序博客网 时间:2024/06/17 18:11

最近在做人脸识别的东西,网上有很多教程,有一篇必看的那就是opencv官方给出的人脸识别的三种算法以及源代码,也就是recongnizer face with opencv,网上流传着中文版,但那个代码是opencv2.4的,如果你安装的是vs2015,那一般就用不了opencv2因为opencv2没有14的库,所以直接搬那个文章的代码到opencv3会有很多问题,比如无法打开源文件contrib.hpp,因为opencv3以上已经移除了contrib所以要用cmake重新编译当然我要说的重点不是这个,你已经完成了这些工作以后去调试人脸识别的代码会发现,网上的那篇文章的代码会出现一些问题,比如它有如下语句

 Mat eigenvalues = model->getMat("eigenvalues");
    Mat W = model->getMat("eigenvectors");
    Mat mean = model->getMat("mean");
编译的时候会报错faceRecognize没有成员函数getMat,还有未定义标识符
subspaceProject之类的错误,那是因为opencv3里面的用法和opencv2不同了,网上很少给出这个解决办法,有几个人提问过这个问题但都是国外的也没有什么清晰的解答,所以我在此写了一篇博客就是为了解答这个问题,解决办法其实很简单,opencv官方已经给出了opencv3的人脸识别源代码只是网上流传的都是2的我们都没有见过3的,我们可以看到在这里面contrib.hpp被换成了face.hpp而且加上了名称空间cv;;face,getMat也被其他方法取代,总之整体没有什么差别,思路还是一样,只是表达方式变了,因为opencv3还没有很多人用,所以网上这方面的资料少之又少,在此我写一篇小文章帮遇到和我相同问题的人解决这个问题,下面附一个官方网址opencv3.2.0的人脸识别源代码其他的其实自己都可以去官网找到

http://docs.opencv.org/3.2.0/da/d60/tutorial_face_main.html

阅读全文
2 0
原创粉丝点击