OpenCV3.3 getMat(); error: no member named 'getMat' in 'cv::face::FaceRecognizer'; model->getMat()

如果你是从谷歌后来的恭喜你 来对地方了

人脸识别的东西,但那个代码是opencv2.4的,所以直接搬那个文章的代码到opencv3.3会有很多问题,网上的那篇文章的代码会出现一些问题,比如它有如下语句:

  Mat eigenvalues = model->getMat("eigenvalues");
  Mat W = model->getMat("eigenvectors");
  Mat mean = model->getMat("mean");
  

编译的时候会报错faceRecognize没有成员函数getMat,还有未定义标识符
解决方法:
1 添加

#include "opencv2/face.hpp"

using namespace cv::face;

2修改
Ptr<FaceRecognizer> model = FaceRecognizer::create();

改为
    Ptr<EigenFaceRecognizer> model = EigenFaceRecognizer::create();

將`Mat eigenvalues = model->getMat(“eigenvalues”);
Mat W = model->getMat(“eigenvectors”);
Mat mean = model->getMat(“mean”);

改为

 Mat eigenvalues = model->getEigenValues();
 Mat W = model->getEigenVectors();
 Mat mean = model->getMean();

原因
opencv3里面的用法和opencv2不同了,在这里面contrib.hpp被换成了face.hpp而且加上了名称空间cv;;face,getMat也被其他方法取代,总之整体没有什么差别,思路还是一样,只是表达方式变了。
注:本博客仅限于opencv3.3.0,如修改后不成功,其他版本opencv的请参考下方的官方案例,选择对应的版本进行比较修改
https://docs.opencv.org/3.3.0/da/d60/tutorial_face_main.html

参考:https://blog.csdn.net/Aowuyuyu/article/details/76086052
https://docs.opencv.org/3.3.0/da/d60/tutorial_face_main.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值