gpt4 book ai didi

c++ - OpenCV drawMatches 什么都不做

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:34 25 4
gpt4 key购买 nike

我正在尝试在 2 张图片上找到匹配的兴趣点。这个项目的最后是建立全景图。

我有这个代码

SIFT detector(0);

src1 = imread( folder + inputName1 , 1 );
cvtColor( src1, src1_gray, CV_BGR2GRAY );
// Detect first image
vector<KeyPoint> keypoints1;
detector.detect(src1_gray, keypoints1);
//Draw keypoints back to source image
drawKeypoints(src1,keypoints1,src1,Scalar::all(-1), 1);
imwrite(folder + outputName1,src1);


src2 = imread( folder + inputName2 , 1 );
cvtColor( src2, src2_gray, CV_BGR2GRAY );
// Detect second image
vector<KeyPoint> keypoints2;
detector.detect(src2_gray, keypoints2);
//Draw keypoints back to source image
drawKeypoints(src2,keypoints2,src2,Scalar::all(-1), 1);
imwrite(folder + outputName2,src2);

vector<DMatch> matches;
Mat output;

drawMatches(src1,keypoints1,src2,keypoints2,matches,output);

imwrite(folder + "matches.jpg",output);

但在最终图像 matches.jpg 中,显示了所有点,并且 vector matches 为空。我做错了什么?我想,只有匹配点才会出现在最终图像中,而在 vector matches 中,我找到了在点之间画线的坐标。

或者我应该使用 RANSAC 来查找匹配点吗?

最佳答案

您还没有匹配到任何点。看这个例子:http://docs.opencv.org/doc/user_guide/ug_features2d.html .

您需要提取描述符,然后将它们与例如 FLANN 匹配。然后你就可以画出你的火柴了;)

关于c++ - OpenCV drawMatches 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com