matlab - MSER特征的匹配算法?

标签 matlab computer-vision feature-detection matlab-cvst 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');

显然它工作正常

enter image description here

但这怎么可能呢? MSERRegions仅包含省略号。他们怎么配对?显然是信息不够!

更新

我发现 extractFeatures函数从 MSER 点返回 SURF 特征向量。所以它比较 64 维的 SURF 向量。

最佳答案

在这种情况下,MSER 区域的质心仅用作提取 SURF 描述符的兴趣点。默认情况下,如果您将 MSERRegions 传递到 extractFeatures 中,您将获得 SURF 描述符。然而,MSER 区域可用于其他用途,例如检测图像中的文本。

关于matlab - MSER特征的匹配算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930134/

相关文章:

MATLAB:创建没有 "side NaN"列的较小矩阵

matlab - 1 个循环中的多个图形,每次迭代在每个图形上添加一条线

python - 如何使用SIFT从数据集中提取相同大小的特征向量?

OpenCV Knn 匹配错误

c++ - 在 OpenCV 中为 BRISK 设置参数

c++ - 如何编译与 QT C++ 一起使用的 MATLAB 代码

matlab - Matlab中的system()函数无法识别参数文件名

c# - 在 C# 中使用 Emgu.CV 的 System.TypeInitializationException

algorithm - 从 3D 浮雕图像中提取深度图

c++ - undistort 与 undistortPoints 用于校准图像的特征匹配