在opencv </dmatch>中手动构造向量<dmatch>

时间:2013-10-09 11:32:35

标签: c++ opencv computer-vision

我有一组点<Point2f> Left和另一个<Point2f> Right,可以有相同或不同的size()。我知道Left中的第一个点对应于Right等中的第一个点。有没有办法构造vector <Dmatch> matches以便继续进行,例如使用drawMatches绘制它们?我正在使用c ++。

1 个答案:

答案 0 :(得分:1)

你知道这些信件吗?

如果它们的大小不同,您需要知道对应关系。在任何情况下,假设它们是相同的大小和对应的,这是你如何做(没有编译,所以它可能有一个错误)

DMatch是一个简单的包装工具,用于记录跟踪记录

vector<DMatch> matches(left.size());
for(size_t i = 0; i <left.size(); ++i)
  matches[i] = Dmatch(i, i, 0);

// make keypoints 
vector<KeyPoint> kp_left(left.size());
for(size_t i = 0; i < left.size(); ++i)
  kp_left[i] = Keypoint(left[i], 1);
// do the same for the right image 

// draw the stuff
drawMatches(left_image, keypts_left, right_image, keypts_right, matches, out_image);
imshow("matches", out_image);
waitKey(0);