当包含提取的特征的矩阵大小不同时,如何从两个图像中找到匹配的特征?

时间:2016-04-19 14:36:18

标签: matlab image-processing feature-extraction matlab-cvst sift

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()函数不起作用。我如何匹配这些功能呢?

1 个答案:

答案 0 :(得分:0)

matchFeatures期望features1features2为矩阵,其中每一行都是一个特征向量。因此,它希望features1features2具有相同的列数,但行数可以不同。您可能只需要将features1features2转置为matchFeatures之前转置。

features1features2的尺寸有多大? SIFT描述符的长度通常为128.因此,如果大小为128乘N,那么您肯定需要转置它们。