如何在Andrea Veldadi的SIFT实施中相互绘制匹配点?

时间:2012-03-02 06:29:15

标签: sift

我使用了vl_ubcmatch函数。我从How to use SIFT algorithm to compute how similiar two images are?获得了帮助。我正在使用的步骤由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*');

这样做是因为它显示了两个图像以及一个标记为蓝色的图像和另一个标记为红色的图像。但是,我也想看到相应的功能被一条线连接起来。

1 个答案:

答案 0 :(得分:4)

您可以找到文档页面here

的代码
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 ;