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-&gt;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 类型不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Python OpenCV RTrees 无法正确加载

从双数组中获取最小值不起作用

动态单选按钮值不起作用[重复]

使用 react-select 设置默认值不起作用

php pdo 请求对给定值不起作用的地方?

为啥恐慌恢复以局部变量返回值不起作用?