Алгоритм соответствия для функций MSER?
Как может работать следующее?
Я ищу MSER
характерные точки, а затем соединить их с matchFeatures
функция.
% file1 = 'roofs1.jpg';
% file2 = 'roofs2.jpg';
file1 = 'cameraman.tif';
I1 = imread(file1);
%I2 = imread(file2);
I2 = imrotate(I1, 45);
% I1 = rgb2gray(I1);
% I2 = rgb2gray(I2);
% %Find the SURF features.
% points1 = detectSURFFeatures(I1);
% points2 = detectSURFFeatures(I2);
points1 = detectMSERFeatures(I1);
points2 = detectMSERFeatures(I2);
%Extract the features.
[f1, vpts1] = extractFeatures(I1, points1);
[f2, vpts2] = extractFeatures(I2, points2);
%Retrieve the locations of matched points. The SURF featurevectors are already normalized.
indexPairs = matchFeatures(f1, f2, 'Prenormalized', true) ;
matched_pts1 = vpts1(indexPairs(:, 1));
matched_pts2 = vpts2(indexPairs(:, 2));
figure; showMatchedFeatures(I1,I2,matched_pts1,matched_pts2,'montage');
legend('matched points 1','matched points 2');
Видимо работает нормально
Но как это может быть? MSERRegions
содержит только эллипсы. Как они могут в паре? По-видимому, недостаточно информации!
ОБНОВИТЬ
я нашел это extractFeatures
Функция возвращает векторы объектов SURF из точек MSER. Таким образом, он сравнивает 64-мерные векторы SURF.
1 ответ
Решение
В этом случае центроиды областей MSER просто используются в качестве точек интереса для извлечения дескрипторов SURF. По умолчанию, если вы передаете MSERRegions
в extractFeatures
вы получите SURF дескрипторы обратно. Тем не менее, области MSER могут использоваться для других целей, таких как обнаружение текста в изображениях.