<Dmatch> 在opencv中手动构建向量

Construct manually a vector <Dmatch> in opencv

本文关键字:构建 向量 lt Dmatch gt opencv      更新时间:2023-10-16

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

你知道对应关系吗?

如果它们的大小不同,您需要知道对应关系。无论如何,假设它们的大小相同且对应,这是您将如何做到这一点(没有编译它,所以它可能有一个错误(

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