OpenCV - 获取 Rtrees 值不起作用 - CopyTo 类型不匹配
Posted
技术标签:
【中文标题】OpenCV - 获取 Rtrees 值不起作用 - CopyTo 类型不匹配【英文标题】:OpenCV - get Rtrees values doesn't work - CopyTo type mismatch 【发布时间】:2016-03-03 18:08:52 【问题描述】:我正在尝试访问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
方法。
你对这两个问题有什么想法吗?
谢谢,
【问题讨论】:
【参考方案1】:那个内存错误看起来不像是由数据类型引起的,并且拆分的类型是正确的。如果您对此表示怀疑,请使用“自动”
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();
【讨论】:
以上是关于OpenCV - 获取 Rtrees 值不起作用 - CopyTo 类型不匹配的主要内容,如果未能解决你的问题,请参考以下文章