2016-03-03 56 views
0

我試圖訪問RTrees的節點和樹。有以下代碼:OpenCV - 獲取Rtrees值不起作用 - CopyTo類型不匹配

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();