img1 = imread('01.01.bmp');
img2 = imread('01.02.bmp');
feature1 = sift_f(img1);
feature2 = sift_f(img2);
indexPairs = matchFeatures(feature1,feature2) ;
matchedPoints1 = vpts1(indexPairs(:,1));
matchedPoints2 = vpts2(indexPairs(:,2));
figure; showMatchedFeatures(img1,img2,matchedPoints1,matchedPoints2);
legend('matched points 1','matched points 2');
矩阵feature1和feature2具有不同的大小。事实上,它们的列数不同。所以,matchFeatures()函数不起作用。我如何匹配这些功能呢?
答案 0 :(得分:0)
matchFeatures
期望features1
和features2
为矩阵,其中每一行都是一个特征向量。因此,它希望features1
和features2
具有相同的列数,但行数可以不同。您可能只需要将features1
和features2
转置为matchFeatures
之前转置。
features1
和features2
的尺寸有多大? SIFT描述符的长度通常为128.因此,如果大小为128乘N,那么您肯定需要转置它们。