Matlab图像处理学习笔记(七):surf特征点

本文主要演示如何使用matlab自带的Computer Vision System Toolbox这个工具箱进行suft特征点的检测、匹配及显示。这个工具箱是matlab2012b及以后才有的一个工具箱,若是你的版本较低,建议你更新较新版本。工具

转载请注明出处:http://blog.csdn.net/u010278305点击打开连接测试

suft特征点是Speeded-Up Robust Features的简称,相比于sift特征点,速度更快。spa

本文涉及到的知识点以下:.net

一、suft特征点。code

二、matlab的Computer Vision System Toolbox工具箱。orm

程序流程以下:blog

一、读取图像,转为灰度图。get

二、寻找surf特征点。it

三、根据特征点计算描述向量。io

四、进行匹配。

五、绘制匹配结果。

matlab源代码以下:

%function:
%       surf特征点检测与匹配
%注意:
%       本例程主要演示如何用matlab自带的Computer Vision System Toolbox进行surf特征点的提取与匹配
%date:2015-1-13
%author:chenyanan
%转载请注明出处:http://blog.csdn.net/u010278305

%清空变量,读取图像
clear;close all

%Read the two images.
I1= imread('images/girl.jpg');
I1=imresize(I1,0.5);
I1=rgb2gray(I1);
I2= imread('images/head.jpg');
I2=imresize(I2,0.5);
I2=rgb2gray(I2);

%Find the SURF features.寻找特征点
points1 = detectSURFFeatures(I1);
points2 = detectSURFFeatures(I2); 

%Extract the features.计算描述向量
[f1, vpts1] = extractFeatures(I1, points1);
[f2, vpts2] = extractFeatures(I2, points2);

%Retrieve the locations of matched points. The SURF feature vectors are already normalized.
%进行匹配
indexPairs = matchFeatures(f1, f2, 'Prenormalized', true) ;
matched_pts1 = vpts1(indexPairs(:, 1));
matched_pts2 = vpts2(indexPairs(:, 2));

%Display the matching points. The data still includes several outliers, 
%but you can see the effects of rotation and scaling on the display of matched features.
%对匹配结果进行显示,能够看到,还有一些异常值
figure('name','result'); showMatchedFeatures(I1,I2,matched_pts1,matched_pts2);
legend('matched points 1','matched points 2');

程序运行效果以下:


测试原文件可在以前的笔记中找到。

转载请注明出处:http://blog.csdn.net/u010278305点击打开连接

相关文章
相关标签/搜索