Итак, я пытаюсь инициализировать модель cv :: face :: EigenFaceRecognizer. Когда я запускаю свое приложение, я получаю exc_bad_access всякий раз, когда пытаюсь вызвать метод для моей модели. Я проверил мой отладчик, и он показывает, что моя модель является nullptr, что заставляет меня поверить, что что-то не так с тем, как я инициализирую свою модель.
Вот как я инициализирую свою модель:
- (id) init {
self = [super init];
if (self)
[self loadDb];
cv::Ptr<cv::face::FaceRecognizer> model = cv::face::EigenFaceRecognizer::create(10, 10.0);
return self;
}
Это то, что отладчик говорит о модели:
model cv::Ptr<cv::face::FaceRecognizer>
std::__1::shared_ptr<cv::face::FaceRecognizer> std::__1::shared_ptr<cv::face::FaceRecognizer> nullptr
_labelsInfo std::__1::map<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<int>, std::__1::allocator<std::__1::pair<const int, std::__1::basic_string<char> > > >
Это функция, которую я пытаюсь запустить на своей модели:
if (images.size() > 0 && labels.size() > 0){
//NSLog(@"TEST ADDR: %p", &model);
//model->getLabelInfo(0);
model->train(images, labels)
return YES;
}
else
return NO;
Я пытался изменить вокругтип модели или пытается получить доступ к другим методам модели, но все они заканчиваются на exc_bad_access. Я правильно инициализирую свою модель?