我使用 OpenCV 2.4.5。我想在两个图像的匹配点之间画线。代码是:
const int &w=image1.cols;
for (size_t i = 0; i<good_matches.size(); i++ )
{
//-- Get the keypoints from the good matches
img1.push_back(keypoints1[good_matches[i].queryIdx].pt);
img2.push_back(keypoints2[good_matches[i].trainIdx].pt);
circle(image1,img1[i],20,Scalar(255,0,0),5);
circle(image2,img2[i],20,Scalar(0,255,0),5);
line(image1,img1[i],Point2f(img2[i].x+w,img2[i].y),Scalar(255,255,255),5);
line(image2,Point2f(img1[i].x-w,img1[i].y),img2[i],Scalar(255,255,255),5);
}
当行的长度within the bounds of image
超过16400
我得到奇怪的结果时。它看起来像线的三角形或有时在 2 个对应点之间的折线,而不是点之间的直线。
所以我应该画线段而不是总线。但这不是很方便。是由于线条绘制算法的限制还是可以以某种方式纠正?