#c #ios #objective-c #opencv #vector
#c #iOS #objective-c #opencv #вектор
Вопрос:
У меня есть оболочка iOS OpenCV в Objective-C , которая выглядит следующим образом:
// CVImage.mm
@interface CVImage()
@property std::vector<std::vector<cv::Point>> contours;
@end
@implementation CVImage
...
- (void) findContours
{
// Find and store contours with cv::findContours
}
// Resize method
- (void) resizeTo:(NSInteger)count
{
// Stuff that ensures count is less than self.contours.size()
...
self.contours.resize(count);
}
...
@end
Но contours
вектор не изменяется. Они отлично отображаются на экране, но если я попытаюсь изменить размер или отсортировать его, код выдает ошибку.
Изменение размера локальной тестовой std::vector<std::vector<cv::Point>>
переменной работает, но не моей переменной-члена экземпляра.
Я неправильно инициализирую его в своей CVImage()
категории? Или OpenCV делает что-то странное?
Ответ №1:
Хорошо, я понял это. Думаю, я плохо его инициализировал. Вы должны убедиться, что это contours
указатель (т. Е. std::vector<std::vector<cv::Point>> *
).
Обновите все ссылки, чтобы они соответствовали, и все работает так, как должно.