2

我使用了 vl_ubcmatch 函数。我从如何使用 SIFT 算法来计算两个图像的相似程度得到了帮助?. 我正在使用的步骤是https://stackoverflow.com/users/71131/jacob 推荐的?. 这些是:

[fa, da] = vl_sift (I);
[fb, db] = vl_sift (J);

[matches, score] = vl_ubcmatch (da, db);

subplot (1,2,1);
imshow (uint8(I));
hold on;
plot (fa(1,matches(1,:)), fa(2, matchesf(1,:)), 'b*');

subplot (1,2,2);
imshow (uint8 (J));
hold on;
plot (fb(1, matches(2,:)), fb(2, matches (2,:)), 'r*');

这样做的目的是显示两张图像,其中一张标记为蓝色,另一张标记为红色。但是,我也想看到相应的特征被一条线连接起来。

4

1 回答 1

4

您可以在此处找到文档页面的代码

figure(2) ; clf ;
imagesc(cat(2, Ia, Ib)) ;

xa = fa(1,matches(1,:)) ;
xb = fb(1,matches(2,:)) + size(Ia,2) ;
ya = fa(2,matches(1,:)) ;
yb = fb(2,matches(2,:)) ;

hold on ;
h = line([xa ; xb], [ya ; yb]) ;
set(h,'linewidth', 1, 'color', 'b') ;

vl_plotframe(fa(:,matches(1,:))) ;
fb(1,:) = fb(1,:) + size(Ia,2) ;
vl_plotframe(fb(:,matches(2,:))) ;
axis image off ;
于 2015-06-13T07:55:55.940 回答