OpenCV — получить значения Rtrees не работает — несоответствие типов CopyTo

Я пытаюсь получить доступ RTreesУзлы и деревья. Имея следующий код:

Ptr<Rtrees> rt = RTrees::create();
...
...
rt->train(data);
vector<DTrees::Split> splits = rt->getSplits();

Я продолжаю получать нарушение доступа к памяти. Обратите внимание, что rt->getSplits() работает само по себе, и я думаю, что проблема с типом данных splits,

Кроме того, когда я читаю информацию о тренировочных данных и хочу скопировать ее в переменную:

std::vector<int> catMap;
data->getCapMap().copyTo(catMap);

он копирует мусор в carMap и я должен скопировать его элемент за элементом вместо использования copyTo метод.
У вас есть идеи по поводу этих двух вопросов?

Спасибо,

0

Решение

Эта ошибка памяти не выглядит как вызванная типом данных, и тип разбиений является правильным. Если вы сомневаетесь, используйте «авто»

auto splits = rt->getSplits();

Попробуйте другие функции, чтобы увидеть, доступна ли ваша модель RTrees,

auto roots = model.getRoots();
auto nodes = model.getNodes();

Установите точку отладки или сообщение журнала печати, чтобы увидеть, если они пусты, если нет ошибки доступа к памяти во время выполнения

std::cout << "num trees " << roots.size();
std::cout << "num nodes " <<  nodes.size();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]