Нет участника с именем «getMat» в «cv::face::FaceRecognizer»

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

@property (nonatomic, strong) NSMutableDictionary *labelsDictionary;

@end

@implementation FJFaceRecognizer

    - (NSArray *)labels {

В следующей строке я получаю сообщение об ошибке No member named 'getMat' in 'cv::face::FaceRecognizer' при использовании OpenCV 3.0:

        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];
        }
    }
}

Что мне использовать вместо getMat в OpenCV 3.0?


person Shmidt    schedule 04.03.2015    source источник


Ответы (1)


Если вам нужно std::vector<int> ярлыков, вы должны иметь возможность использовать getLabelsByString

http://docs.opencv.org/master/dd/d65/classcvstd::vector<int>1facestd::vector<int>1FaceRecognizer.html

Возможно, стоит просмотреть руководство по переходу со 2 на 3.

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

person slf    schedule 01.05.2015