我有一组点<Point2f> Left
和另一个点<Point2f> Right
,可能相同或不同size()
。我知道 Left 中的第一个点对应于 Right 等中的第一个点。有没有办法构造 avector <Dmatch> matches
以便继续进行,例如使用 绘制它们drawMatches
?我正在使用 C++。
问问题
762 次
1 回答
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);
于 2014-10-24T05:19:23.660 回答