Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matching algorithm for MSER features?

How can the following work?

I am seeking for MSER feature points and then pairing them with matchFeatures function.

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

Apparently it works fine

enter image description here

But how it can be? MSERRegions contains only ellipses. How can they paired? It is apparently not enough information!

UPDATE

I found that extractFeatures function returns SURF feature vectors from MSER points. So it compares 64-dimensional SURF vectors.

like image 535
Suzan Cioc Avatar asked Sep 11 '26 13:09

Suzan Cioc


1 Answers

In this case the centroids of the MSER regions are simply used as interest points for extracting SURF descriptors. By default if you pass MSERRegions into extractFeatures you will get SURF descriptors back. However, MSER regions can be used for other things, such as detecting text in images.

like image 157
Dima Avatar answered Sep 13 '26 06:09

Dima



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!