【问题标题】:error: no member named 'getMat' in 'cv::face::FaceRecognizer'错误:“cv::face::FaceRecognizer”中没有名为“getMat”的成员
【发布时间】:2015-04-22 22:08:00
【问题描述】:

我正在使用 opencv-3.0 来实现来自 opencv 文档的 opencv facial recognition demo

我相信这个演示是使用opencv-2.4 编写的。但是,我已将contrib src 添加到我的构建中,正如SO answer 中所建议的那样。

但是,我现在收到以下错误:

error: no member named 'getMat' in 'cv::face::FaceRecognizer'

违规代码是

Mat eigenvalues = model->FaceRecognizer::getMat("eigenvalues");

我正在编译我的代码

g++ -o facerec_demo facerec_demo.cpp `pkg-config --cflags --libs opencv`

有没有办法解决这个问题,或者这个演示与opencv-3.0 完全不兼容?

【问题讨论】:

    标签: c++ opencv compiler-errors opencv3.0


    【解决方案1】:

    根据this example,下一行中的model 是一个指针,指向FaceRecognizer 类实例,而不是对象本身。

    129:    Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
            ...
    143:    Mat eigenvalues = model->getMat("eigenvalues");
    

    因此,getMat 函数没有在 FaceRecognizer 类中定义是有道理的,但它应该为 Ptr&lt;FaceRecognizer&gt; 定义。

    【讨论】:

    • 小心,以上答案对现在过时的rc3.0版本有效,api已更改again(上面引用的文档是也过时了)。另请查看更新后的tutorials
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多