图像特征提取
1) 图像的边缘检测:是指灰度急剧变化的那些像素的集合,它是图像最基本的特征。边缘检测的基本思想是先检测图像中的边缘点,再按照某种测率将边缘点连接起轮廓,从而构成分割区域。
2) Canny算子的基本原理:
评价标准:
高的检测率(应该指对边缘进行检测,不漏检任何边缘,也不应将非边缘标记为边缘)
精确的定位(检测的边缘与实际的边缘误差要尽可能小)
明确的响应(对每一条边缘只有一次响应,只得到一个点)
基本步骤:
a) 去噪声:使用高斯函数对图像进行平滑滤波。
b) 计算梯度值与方向角:分别求取去噪声后的图像在X和Y轴上的梯度(可以通过前面使用SOBEL模板进行卷积)
c) 非最大值抑制:根据Canny边缘算子评价标准,边缘只允许有一个像元的宽度,但经过滤波后,图像中的边缘不同。非最大值抑制就是将那些在梯度方向上具有最大梯度值(梯度最大值通常出现在边缘的中心随着沿梯度方向距离的增加,梯度值随之减少)的像元作为边缘像元保留,将其他像元删除。
d) 滞后阈值化:由于噪声的影响,会出现本应该连续的边缘出现断裂,滞后阈值化设定两个阈值,一个高阈值,一个低阈值。如果任何像素对边缘算子的影响超过高阈值,将被标记为边缘。相应超过低阈值(高低阈值之间)的像素,如果已经标记为边缘的像素4-邻接或8-邻接,则将这些像素标记为边缘。
Edge(I,method,,’threshold’)
函数功能:I指输入的灰度图像
method:进行边缘检测方法(sobel,,prewitt,canny,log)
threshold:为所设定的阈值
输出形式:BW-经过边缘检测后的二值图像。
3) Prewitt算子
算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。例题如图
4) 角点:角点是两个边缘的交点,角点是领域内具有两个主方向的特征点。
角点的基本原理:角点通常在是一个局部的小区域或小窗口内完成的,如果在各个方向移动这个小窗口,,窗口内的灰度发生了变化,那么就默认这个窗口内遇到了角点。如果图像在各个方向上移动,且图像的灰度没有发生变化,那么窗口内就么有角点。如果窗口在某一个方向上移动时,窗口内的图像的灰度发生了较大的变化,而在另外的方向上没有发生变化,那么窗口内的图像可能是一条直线的一部分。
检测步骤:1)计算图像在X和Y方向上的梯度Ix,Iy.
2)计算图像两个方向梯度的乘积。
3)使用高斯函数对Ix^2,Iy^2和Ixy进行高斯加权,生成矩阵M
4)计算两个像元的角点的响应值R,并对小于某一阈值的R置为零。
5)在3*3或5*5的邻域内进行非最大值抑制,局部最大值点即为图像中的角点
角点检测函数:
CM= cornermetric(I,method,’sensitivityFactor’)
功能介绍:对输入的图像进行角点检测
I:输入的图像
Method:角点检测的方法,通常为Harris或minimumeigenvalue,默认值为Harris。
sensitivityFactor:敏感因子,默认值为0.04
CM:输出角点矩阵,其大小与输入的图像大小相同,原图像可能是角点位置在在矩阵中的相对位置具有较大的取值。
例题如图
SURF特征提取
算法简介:
1, 积分图像:借助积分图像,图像与高斯二阶微分模板的滤波转化为对图像的加减运算
应用J=integralimage(I),J积分图像,I原图像
2, DoH近似:为了将模板与图像的卷积转化成盒子滤波,需要对高斯微分二阶模板进行简化,使得简化的模板有几个矩阵区域组成矩阵区域内填充同一个值。
3, 尺度空间表示:为了获得不同的尺度的斑点,必须建立尺度空间金字塔,一般的方法是采用不同值的西格玛的高斯函数,对图像进行平滑滤波,重采样以获得高层的金字塔。
4, Surf特征描述算子:它在生成矢量使用的是积分图像,目的是充分利用在特征检测的时候产生的中间结果,避免在特征矢量生成时对图像进行重复运算。
函数应用:POINTS=detectSUREFFeatures(I,name,value)
功能:用于检测灰度图像的SUREF特征。
I:待检测的图像
NAME:Vakue-MtricThreshold:矩阵阈值,只有大于该阈值的才能被确定为SUREF特征点,默认值为1000.
NumOctaves:组数(Octave),默认值为3。
NumScaleLevals:每组的尺度层数,默认值为4.