Как построить сопоставленные точки друг с другом в реализации SIFT Андреа Велдади? - PullRequest
2 голосов
/ 02 марта 2012

Я использовал функцию 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*');

. Это означает, что два изображения вместе с объектами отмечены синим цветом в одном и краснымдругой.Но я также хочу, чтобы соответствующие объекты были соединены линией.

1 Ответ

4 голосов
/ 13 июня 2015

Вы можете найти код для страницы документации здесь

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 ;
...