有沒有人碰巧知道爲什麼OpenCV 2 DescriptorMatcher::radiusMatch()
和knnMatch()
需要vector<vector<DMatch>>& matches
?我對它爲什麼不只是一個向量有點困惑,因爲它只是場景中與訓練圖像對應的單個點陣列,對吧?OpenCV DescriptorMatcher radiusMatch和knnMatch結果格式
我有這樣的事情:
void getMatchingPoints(
const vector<vector<cv::DMatch> >& matches,
const vector<cv::KeyPoint>& keyPtsTemplates,
const vector<cv::KeyPoint>& keyPtsScene,
vector<Vec2f>& ptsTemplate,
vector<Vec2f>& ptsScene
)
{
ptsTemplate.clear();
ptsScene.clear();
for (size_t k = 0; k < matches.size(); k++)
{
for (size_t i = 0; i < matches[k].size(); i++)
{
const cv::DMatch& match = matches[k][i];
ptsScene.push_back(fromOcv(keyPtsScene[match.queryIdx].pt));
ptsTemplate.push_back(fromOcv(keyPtsTemplates[match.trainIdx].pt));
}
}
}
,但我有點困惑如何實際映射約。對象的位置一旦我將它們全部放入ptsScene
。當我繪製它們時,這些點似乎分散給我,所以我想我錯過了嵌套向量代表的東西。
非常徹底,非常感謝! – 2012-03-01 23:19:01