没有名为' getMat' in' cv :: face :: FaceRecognizer'

时间:2015-03-04 19:49:36

标签: objective-c++ opencv3.0

@interface FJFaceRecognizer () {
    Ptr<FaceRecognizer> _faceClassifier;
}

@property (nonatomic, strong) NSMutableDictionary *labelsDictionary;

@end

@implementation FJFaceRecognizer

    - (NSArray *)labels {

在下一行,我在使用OpenCV 3.0时收到错误消息No member named 'getMat' in 'cv::face::FaceRecognizer'

        cv::Mat labels = _faceClassifier->getMat("labels");

        if (labels.total() == 0) {
            return @[];
        }
        else {
            NSMutableArray *mutableArray = [NSMutableArray array];
            for (MatConstIterator_<int> itr = labels.begin<int>(); itr != labels.end<int>(); ++itr ) {
                int lbl = *itr;
                [mutableArray addObject:@(lbl)];
            }
            return [NSArray arrayWithArray:mutableArray];
        }
    }
}

在OpenCV 3.0中我应该使用什么而不是getMat

1 个答案:

答案 0 :(得分:1)

如果您需要std::vector<int>个标签,则应该可以使用getLabelsByString

http://docs.opencv.org/master/dd/d65/classcv_1_1face_1_1FaceRecognizer.html

可能值得查看从2到3的过渡指南

http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html