'cv::face::FaceRecognizer' 中没有名为 'getMat' 的成员
No member named 'getMat' in '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];
}
}
}
我应该用什么代替 OpenCV 3.0 中的 getMat
?
如果你想要 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
@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];
}
}
}
我应该用什么代替 OpenCV 3.0 中的 getMat
?
如果你想要 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