图像特征提取
图像的边缘检测基本原理
图像的边缘是指其周围像素灰度急剧变化的那些像素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据,由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要特征。
边缘检测基本思想是先检测图像中的边缘点,再按照某种策略将边缘点连接成轮廓,从而构成分割区域。由于边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开,因此边缘检测对于数字图像处理十分重要。
在MATLAB图像处理工具箱中,提供了与图像边缘检测相关的函数:
BW=edge(I,method,’threshold’);
功能是对所输入的灰度图像进行边缘检测
输入:I-输入灰度图像;method-进行边缘检测的方法可以设置为sobel、prewit、roberts、log、zerocross、canny;
threshold-为锁定的阈值。
输出:BW-经过检测后的二值图像。
例题如下

2.Harries角点的基本原理
在MATLAB图像处理工具箱中,提供了与角点检测相关的函数cornermetric( ):
CM=cornermetric(I,method,’SensitivityFactor’)
功能:对所输入的灰度图像进行角点检测。
输入:I-输入的灰度图像;method-角点检测的方法,可设置为Harrris或MinimumEigenvalue其默认值为Harris;SensitivityFactor-采用Harries检测时的敏感因子,默认值为0,04。
输出:CM-角点矩阵,其大小与输入图像矩阵大小相同,原图像中可能是角点的位置在矩阵中的相应位置具有较大的取值。
例题是调用cornermetrics( )对输入图像进行Harris角点检测的MATLAB程序,其运行结果如图所示

3.SURF 特征提取
SURF将DoH中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波模板的尺寸无关,从而极大地提高了尺寸不变的特征检测速度.
points=detectSURFFeatures(I,Name,Value)
功能是用于检测灰度图像的SURF特征;
输入:I-待检测的灰度图像;Name,Vakue-MetricThreshold:矩阵阈值,只有大于该阈值的才能确定为SURF特征点,默认值为1000;NumOctaves:组数(Octaves);默认值为3;NumScaleLeves:每组的尺度层数,默认值为4.
输出:POINTS-返回的一个对象,其中包含着SURF特征点的信息
下面例题是调用detectSURFFeatures( )函数运行程序:
I=imread('cameraman.tif');
points = detectSURFFeatures(I);
%显示最强的十个SURF特征点;
imshow(I),hold on;
plot(points.selectStrongest(10));
