【问题标题】:OpenCV - get Rtrees values doesn't work - CopyTo type mismatchOpenCV - 获取 Rtrees 值不起作用 - CopyTo 类型不匹配
【发布时间】: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 方法。 你对这两个问题有什么想法吗?

谢谢,

【问题讨论】:

    标签: c++ opencv random-forest opencv3.0


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多