特征提取
特征提取
边界预处理
边界追踪
边界追踪是指从图像中提取出目标区域的边界像素点,并按照一定的顺序将这些像素点连接起来,形成闭合的边界。边界追踪通常在二值图像或边缘检测后的图像上进行。
步骤:
- 边缘检测:将目标与背景分开
- 起始点选择:这个点通常是目标边界上的一个像素,例如目标最左上方的点
- 从起始点开始,沿着目标的边界向外跟踪。按照预定的搜索顺序(如顺时针),在当前像素点的邻域内搜索下一个边界像素点。将经过的每个像素点位置记录下来,以便最后形成一个边界的坐标点序列。
- 终止条件:通常是回到起始点
- 轮廓表示:将记录的坐标点序列连接起来形成轮廓。
链码
弗里曼链码
- 链码是一种用方向代码序列来描述图像中目标边界的方法。它将边界上的每个像素点与其相邻像素点之间的方向关系编码成一个数字,从而形成一个描述整个边界的数字序列。这种方向数字序列形成的边界称为弗里曼链码。
4 方向链码:右(0)上(1)左(2)下(3)
8 方向链码:右(0)右上(1)上(2)左上(3)左(4)左下(5)下(6)右下(7) - 由于链码依赖于起始点的选择,直接使用链码进行边界比较可能会受到起始点的影响。为了减少这种依赖性,通常需要对链码进行归一化处理:
- 将链码视为方向数的一个循环序列,并重新定义起点,使得到的数字序列形成一个数值最小的整数。
- 也可以用链码的一阶差分代替链码本身来归一化旋转。按逆时针方向计算相邻两个链码方向之间的差值。对于 8 邻接链码,方向 1 到方向 2 的差值为 1,方向 7 到方向 0 的差值为 1。例如,4 方向链码 10103322 的一阶差分是 3133030.
- 链码是一种用方向代码序列来描述图像中目标边界的方法。它将边界上的每个像素点与其相邻像素点之间的方向关系编码成一个数字,从而形成一个描述整个边界的数字序列。这种方向数字序列形成的边界称为弗里曼链码。
斜率链码
二维曲线的斜率链码是通过在曲线周围放置等长的直线段得到的。计算相邻直线段的斜率变化,并将斜率变化归一化到区间(-1,1)
最小周长多边形(MPP)近似边界
用最小周长多边形近似边界是一种在数字图像处理中常用的技术,用于简化边界描述,减少数据量,同时保留边界的主要特征。这种方法通过寻找一个具有最小周长的多边形来近似原始边界,从而在保持边界形状大致不变的同时,减少边界点的数量。
边界特征描述子
区域特征描述子
基本描述子
- 紧致度:周长的平方与面积之比
$$ 紧致度 = \frac{p^2}{A}$$ - 圆度
$$ 圆度 = \frac{4 \pi A}{p^2}$$
拓扑描述子
拓扑学研究的是图形不受任何变形影响的性质。拓扑描述子定义为区域的孔洞数量不会受拉伸或旋转变换的影响。
对区域描述有用的另一个拓扑性质是图像或区域连通分量的数量。孔洞的数量 $H$ 和连通分量 $C$ 的数量可以定义欧拉数 $E$。
$$ E = C - H $$
由直线段表示的区域(多边形网络)对欧拉数有一个简单的解释。顶点数为 $V$,边数表示为 $Q$,面数表示为 $F$,可给出欧拉公式的如下表达式:
$$ V - Q + F = E = C - H $$
纹理
- 统计方法
描述纹理的最简单方法之一是用图像或区域的灰度级直方图的统计矩。
令 $z$ 为表示灰度的随机变量,$p(z_i), i=0,1,2…L-1$ 为对应的归一化直方图,$z$ 相对于平均值的 n 阶矩是:
$$ \mu_n(z) = \sum_{i=0}^{L-1}(z_i - m)^np(z_i) $$
式中,m 是 z 的均值,即图像的平均灰度:
$$ m = \sum_{i=0}^{L-1}p(z_i)z_i $$
可以得到 0 阶矩 $\mu_0 = 1$ 和 1 阶矩 $\mu_1 = 0$。二阶矩(即方差$\sigma^2(z) = \mu_2(z)$)在纹理描述中尤其重要,它是灰度对比的一个测度,可用于建立相对灰度平滑度描述子。
- 灰度共生矩阵
令 $Q$ 为定义两个像素的相对位置的算子。例如将 $Q$ 定义为“右边的一个像素”,即一个像素的相邻像素定义为其右边的一个像素。考虑一幅有 $L$ 个灰度级的图像,令 $G$ 是一个矩阵,其元素 $g_{ij}$ 是图像 $f$ 中灰度为 $i$ 和 $j$ 的像素在 $Q$ 规定的位置上出现的次数,其中 $1 \leq i ,j \leq L$。以这种方式形成的矩阵称为灰度共生矩阵。
例如,下图中 $Q$ 的定义为“右边的一个像素”。$G$ 的 $(6,2)$ 元素是 3,因为在图像 $f$ 中,一个像素是 6 且其右侧的像素值为 2 的情况出现了 3 次。
图像灰度级的个数决定了共生矩阵的大小,256 个灰度级的图像,共生矩阵大小为 $256 \times 256$。为了减少计算量,可以把前 32 级灰度级等于 1,32 到 64 灰度级等于 2,以此类推,得到一个 $8 \times 8$ 的共生矩阵。
- 频谱方法
傅里叶谱非常适合描述图像中周期或半周期二位模式的方向性。用于纹理描述的傅里叶谱的三个特征:- 谱中的突出峰给出纹理模式的主方向
- 频率平面上的峰值位置给出纹理模式的基本空间周期
- 通过滤波消除任何周期分量,然后用统计技术描述留下的非周期图像元素。
作为特征描述子的主分量 PCA
- 定义
PCA即主成分分析技术,又称主分量分析,是一种通过降维思想将多指标转化为少数几个综合指标的技术。其核心在于将高维数据投影到低维空间,同时保留尽可能多的原数据方差。 - 原理
在统计学中,PCA通过对协方差矩阵进行特征分解,以找到数据中方差最大的方向,从而将这些方向作为新的坐标轴。第一个新坐标轴(称为第一主成分)捕捉数据中的最大方差,第二个新坐标轴(第二主成分)与第一主成分正交且捕捉次大方差,依次类推。 - 实现步骤
- 计算协方差矩阵:首先需要计算原始数据的协方差矩阵,这反映了不同变量之间的相关性。
- 特征值和特征向量的计算:接下来,求解协方差矩阵的特征值和特征向量。特征值表示各个主成分方向上的方差大小,而特征向量则代表这些方向。
- 选择主成分:根据特征值的大小排序,选择前k个最大特征值对应的特征向量,这些特征向量构成了新的低维子空间的基。
- 数据转换:将原始数据投影到选定的特征向量上,从而实现降维。这一步骤通常通过矩阵乘法完成。
整体图像特征
尺度不变特征变换(SIFT)
尺度不变特征变换 SIFT 算法(图像的尺度并非指图像的大小,而是指图像的模糊程度σ)是一种基于局部兴趣点的算法,不仅对图片大小和旋转不敏感,而且对光照、噪声等影响的抗击能力也很优秀。常用应用领域:图像拼接,分别提取待拼接图片的特征点,拟合透视矩阵得到不同场景下的同一物体,拼接图像。
- 尺度空间极值检测
通过使用高斯模糊在不同尺度下对图像进行处理,构建一个高斯金字塔,检测关键点。尺度空间是通过高斯模糊和下采样原始图像来构建的。 - 关键点定位
在尺度空间中,通过比较每个像素点与其邻域内的点(包括不同尺度和方向)来确定关键点的位置。 - 方向赋值
为每个关键点分配一个主方向,通常是通过计算关键点邻域内的梯度方向直方图来实现。 - 关键点描述
生成关键点的描述符,通常是一个向量,包含了关键点周围区域的梯度信息。这个描述符对图像的尺度、旋转和亮度变化具有鲁棒性。 - 匹配
使用关键点的描述符来匹配不同图像中的关键点,从而实现图像之间的对应关系。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Star!







