1
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'); 

マトリクスフィーチャ1とフィーチャ2のサイズは異なります。実際、列の数が異なります。したがって、matchFeatures()関数は機能しません。どのようにフィーチャに一致させるのですか?抽出されたフィーチャを含む行列のサイズが異なる場合、2つのイメージから一致するフィーチャを見つけるにはどうすればよいですか?

+0

もちろんこれは入力に大きく依存します。画像を同じ解像度でサイズ変更しようとすると、それがうまくいくはずです – 16per9

+0

マトリックスのサイズはどのくらいですか? – Photon

答えて

0

matchFeaturesは、とが行列であると予測します。ここで、各行は特徴ベクトルです。したがって、features1features2は同じ数の列を持つことが予想されますが、行の数は異なる場合があります。 features1features2を転送してからmatchFeaturesに渡すだけでよい場合があります。

features1features2のサイズは何ですか? SIFT記述子の長さは通常128です。サイズが128-by-Nならば、それらを転置する必要があります。

関連する問題