1. 边缘提取
1.1 微分算子检测边缘
一阶算子:一阶导数的极大值点
二阶算子:二阶导数的过零点
一阶算子: Prewitt算子 , sobel算子(给四邻域更大的权重)
二阶算子代表:拉普拉斯算子
但拉普拉斯算子二阶导对噪声非常敏感,通常配合滤波器同时使用(高斯拉普拉斯:形状如同倒扣的帽子)。
1.2 Canny边缘检测器
最常用的边缘检测方法。能够噪声抑制,边缘增强,边缘定位。
算法分为三步:计算图像梯度,梯度非极大值抑制(NMS),双阈值提取边缘点
过程分别是:
- 使用高斯平滑进行降噪
- 寻找图像中的亮度梯度。使用4个方向的mask,分别是水平、垂直、两个对角线,检测边缘。将卷积结果保存起来,在每个点都保留最大梯度值和方向。
- 双阈值提取边缘。先使用大的阈值,检测出比较确信的边缘点。然后沿着前面得出的梯度方向进行跟踪,在跟踪时使用较小的阈值,直到回到最初的起点。由此得到一个二值图像,每个点表示是否为边缘点。
2. 特征点提取
角点即局部窗口沿着各个方向移动,均产生明显变化的点。
2.1 Harris角点检测
基本思想:
平坦区域:沿着任意方向移动,都无灰度变化。
边缘:沿着边缘方向移动,无灰度变化。
角点:任意方向移动,明显灰度变化。
数学表达: E ( u , v ) = ∑ x , y w ( x , y ) [ I ( x + t , y + t ) − I ( x , y ) ] 2 E(u, v) = \sum_{x,y}w(x,y)[I(x+t, y+t) - I(x,y)]^2 E(u,v)=x,y∑w(x,