数字图像处理笔记(十三):图像特征表示和描述

1 - 引言

在我们进行图像识别的时候,往往是将图片中的特征来表示整张图片让计算机进行识别,基本上表示一个区域涉及两种选择:

  1. 外部特征
  2. 内部特征

下一步就是基于所选择的表示来描述区域

当我们关注的重点是形状特征时,可选择一种外部表示;而当关注的重点是内部属性如颜色和纹理时,可以选择一种内部表示。无论哪种情形,选择用来作为描绘子的特征都应尽可能地对大小、平移和旋转不敏感

2 - 表示

图像分割技术以沿着边界或包含在区域中的像素的形式产生原始数据,标准做法是使用某种方案将分割后的数据精简为更便于描绘子计算的表示。下面让我们学习一下各种表示方法

2.1 - 边界追踪算法

该算法输出的是排序后的点序列,我们假设:

  1. 处理的是二值图像,其目标和背景点分别标位1和0
  2. 图像已使用值为0的边界填充,因而消除了目标与图像边界合并的可能性

给定一个二值区域R或其边界,追踪R的边界或给定边界的算法由如下步骤组成:

  1. 令起始点 b 0 b_0 为图像中左上角标记为1的点。使用 c 0 c_0 表示 b 0 b_0 西侧的邻点。从 c 0 c_0 开始按顺时针方向考察 b 0 b_0 的8个邻点。令 b 1 b_1 表示所遇到的值为1的第一个邻点,并直接令 c 1 c_1 是序列中 b 1 b_1 之前的点。存储 b 0 b_0 b 1 b_1 的位置,以便在步骤5中使用
  2. b = b 1 b=b_1 c = c 1 c=c_1
  3. 从c开始按顺时针方向行进,令b的8个邻点为 n 1 , n 2 , , n 8 n_1,n_2,\dots,n_8 找到标记为1的第一个 n k n_k
  4. b = n k b=n_k c = n k 1 c=n_{k-1}
  5. 重复步骤3和步骤4
    当算法停止时,所找到的b点的序列就构成了排列后的边界点的集合

在这里插入图片描述

2.2 - 佛雷曼(Freeman)链码

链码用于表示由顺次连接的具有指定长度和方向的直线段组成的边界。这种表示基于这些线段的4连接或8连接。每个线段的方向使用一种数字编号方案编码,如图所示,以这种方向性数字序列表示的编码称为佛雷曼(Freeman)链码。
链码的一次差分为,通过计算链码中分隔两个相邻像素的方向变化的数(按逆时针方向计算前一个数字变化到后一个数字所需的步数),其中第一元素是通过使用链码的最后一个元素和第一个元素间的转变来计算得到的。例如,4方向链码0231,得到的一次差分为3212,其中3为1逆时针转到0需3步;2为0逆时针转到2需2步;1为2逆时针转到3需1步;2为3逆时针转到1需2步。

在这里插入图片描述

2.3 - 使用最小周长多边形的多边形近似(MPP)

一副图像我们可以用多边形拟合它的形状。
在这里插入图片描述
我们的目的就是使用合适的最大可能单元大小,以最少的定点数来生产MPP,并且我们可以发现构成边界的多边形每个转向要么是一个凸定点,要么是一个凹顶点。
注意的是凹顶点(黑色)有一个对应的“镜像”顶点,位于凹顶点的对角处
在这里插入图片描述
因此,我们的算法就只需要关注这些顶点

MPP算法

令W(白)和B(黑)分别表示凸顶点镜像凹顶点
寻找MMP的算法使用两个“爬行”点:

  • 白色的爬行垫( W c W_c ): W c W_c 沿凸顶点(w)爬行
  • 黑色的爬行垫( B c B_c ): B c B_c 沿镜像凹顶点(B)爬行。

算法首先令 W c = B c = V 0 W_c=B_c=V_0 v 0 v_0 是一个MPP顶点), V L V_L 表示最后一个MPP顶点, V k V_k 表示正在考察的当前顶点。
s g n ( a , b , c ) d e t ( A ) sgn(a,b,c)\equiv det(A)
(det(A)是A的行列式)
V L , V k V_L,V_k 和两个爬行点之间存在如下三个条件之一:

  1. V k V_k 位于通过 V L , W c (V_L,W_c) 的直线的正的一侧,即 s g n ( W L , W c , V k ) > 0 sgn(W_L,W_c,V_k)>0
  2. V k V_k 位于通过 V L , W c (V_L,W_c) 的直线的负的一侧,或者 V k V_k V L , W c (V_L,W_c) 共线,即 s g n ( W L , W c , V k ) 0 sgn(W_L,W_c,V_k)\leq 0 。同时, V k V_k 位于通过 ( V L , B c ) (V_L,B_c) 的直线的正的一侧,或者 V k V_k ( V L , B c ) (V_L,B_c) 共线,即 s g n ( V L , B c , V k ) 0 sgn(V_L,B_c,V_k)\geq 0
  3. V k V_k 位于通过 V L , B c (V_L,B_c) 的直线的负的一侧,即 s g n ( V L , B c , V k ) < 0 sgn(V_L,B_c,V_k)<0

如果条件1成立,则下一个MPP顶点是 W C W_C 并且我们令 V L = W c V_L=W_c ;然后我们令 W c = B c = V L W_c=B_c=V_L 来重新初始化该算法,并在 V L V_L 之后的下一个顶点继续执行算法

如果条件2成立,则 V k V_k 编程一个候选的MPP顶点。在这种情况下,如果 V k V_k 是凸顶点,则令 W c = V k W_c=V_k ;否则,我们置 B c = V k B_c=V_k 然后,我们使用列表中的下一顶点继续执行算法

如果条件3成立,则下一个MPP顶点是 B c B_c ,并且令 V L = B c V_L=B_c ;然后我们令 W c = B c = V L W_c=B_c=V_L 来重新初始化该算法,并用 V L V_L 之后的下一个顶点继续执行算法

当算法再次到达第一个顶点时,算法结束,此时算法已经处理了多边形中的所有顶点。

3 - 边界描绘子

3.1 - 一些简单的描述子

  1. 边界的长度
    边界的长度是最简的描述子之一。一条边界上的像素数量可以给出其长度的粗略近似。
  2. 边界的长轴与短轴
    边界B的直径定义为
    D i a m ( B ) = m a x i j [ D ( p i , p j ) ] Diam(B)=max_{ij}[D(p_i,p_j)]
    p i , p j p_i,p_j 是边界上的点, D p j , p j D(p_j,p_j) 是定义 p i p_i p j p_j 之间的距离。直径的值和连接组成该直径两个端点的直线段(该直线称为边界的长轴)的方向是边界的有用描述子,边界的短轴定义为与长轴垂直的直线,且由边界与两个轴相交的4个外部点所组成的方框(该方框称为基本矩形),可以全完包围该边界
  3. 边界的偏向率
    长轴与短轴之比成为边界的偏心率

3.2 - 形状数

链码边界的一次差分取决于起始点。一条基于链码的边界的形状数,定义为最小量级的一次差分,即对链码的一次差分进行循环,得到的值最小的差分码为形状数。

3.3 - 傅里叶描述子

下图显示了xy平面内的一个K点数字边界,从任意点 x 0 y 0 (x_0,y_0) 开始,以逆时针方向在该边界上行进时,会遇到坐标对 x 0 , y 0 , ( x 1 , y 1 ) , ( x 2 , y 2 ) , , ( x k 1 , y k 1 ) (x_0,y_0),(x_1,y_1),(x_2,y_2),\dots,(x_{k-1},y_{k-1}) 这些坐标可以表示为 x ( k ) = x k , y ( k ) = y k x(k)=x_k,y(k)=y_k 的形式,此外,每个坐标都可当做一个复数来处理

s ( k ) = x ( k ) + j y ( k ) s(k)=x(k)+jy(k)
式中有 k = 0 , 1 , 2 , , K 1 k=0,1,2,\dots,K-1
s(k)的傅里叶变换为
a ( u ) = k = 0 K 1 s ( k ) e j 2 π u k / K a(u)=\sum_{k=0}^{K-1}s(k)e^{-j2\pi uk/K}
式中 u = 0 , 1 , 2 , , K 1 u=0,1,2,\dots,K-1 复系数 a ( u ) a(u) 称为边界的傅里叶描述子。这些系数的傅里叶反变换可恢复s(k)
s ( k ) = 1 K u = 0 K 1 a ( u ) e j 2 π u k / K s(k)=\frac{1}{K}\sum_{u=0}^{K-1}a(u)e^{j2\pi uk/K}

然而,假设仅使用前P个傅里叶系数而不使用所有系数,等同于上式中令 a ( u ) = 0 , u > P 1 a(u)=0,u>P-1 结果 s ( k ) s(k) 的如下近似:
s ^ ( k ) = 1 K u = 0 P 1 a ( u ) e j 2 π u k / P \hat s(k)=\frac{1}{K}\sum_{u=0}^{P-1}a(u)e^{j2\pi uk/P}

尽管求 s ^ ( k ) \hat s(k) 的每个成分时仅使用了P项,但k的范围仍然是从0到K-1,也就是说,在近似边界中存在同样数量的点,但项数不像在每个点的重建中那么多

由于高频成分说明精细细节,而低频成分决定全局形状,因此P越小,边界丢失的细节就越多

在这里插入图片描述

3.4 - 统计矩

如图(a),它显示了一段边界,图(b)显示了以任意变量 r r 的一维函数 g ( r ) g(r) 描述的线段,该函数是这样获得的:先将该线段的两个端点连接,然后旋转该直线,直至其为水平线段,此时所有的点的坐标也旋转同样的角度

g ( r ) g(r) 归一化为单位面积,并把它当作直方图来处理,换句话说, g ( r i ) g(r_i) 现在作为值 r i r_i 出现的概率来处理,此时,r为一个随机变量,故n阶矩为
u n ( r ) = i = 0 K 1 ( r i m ) n g ( r i ) u_n(r)=\sum_{i=0}^{K-1}(r_i-m)^ng(r_i)
式中, m = i = 0 K 1 r i g ( r i ) m = \sum_{i=0}^{K-1}r_ig(r_i)

K是边界上的点数, u n ( r ) u_n(r) 直接与 g ( r ) g(r) 的形状相关。例如,二阶矩 u 2 ( r ) u_2(r) 度量曲线关于r的均值扩展程度,而三阶矩 u 3 r u_3(r) 度量曲线关于均值的对称性

在这里插入图片描述

4 - 区域描述子

4.1 - 简单的区域描述子

  1. 区域的面积
    区域的面积定义为该区域中像素的数量
  2. 区域的周长
    区域的周长是其边界的长度
  3. 致密性
    致密性定义为(周长) 2 / ^2/ 面积
  4. 圆周率
    圆周率即一个区域的面积与具有相同周长的一个圆(最致密形状)的面积之比。周长为P的一个圆的面积 P 2 / 4 π P^2/4\pi 。因此,圆周率 R c R_c 由下式给出:
    R c = 4 π A p 2 R_c=\frac{4\pi A}{p^2}
    A是所讨论的区域面积,P是其周长
  5. 其他
    用作区域描述子的其他简单测度包括灰度值的均值和中值,最小灰度值和最大灰度值,以及其高于和低于均值的像素数

4.2 - 拓扑描述子

拓扑学研究未受任何变形影响的图形的特质,前提是该图形未被撕裂或粘连。
例如,图(a)显示了一个带有两个孔洞的区域。如果一个拓扑描述子由该区域内的孔洞数量来定义,那么这种性质明显不受拉伸或旋转变换的影响。
另一个对区域描述有用的拓扑特性是连通分量的数量。如图4(b)显示了一个具有3个连通分量的区域。

在这里插入图片描述

图形中孔洞的数量 H 和连通分量的数量 C ,可用于定义欧拉数 E :E = C - H

欧拉数也是一种拓扑特性。例如,图所示的区域有分别等于 0 和 −1 的欧拉数。
在这里插入图片描述

4.3 - 纹理

描绘区域的一种总要方法是量化该区域的纹理内容

出现处理中用于描述区域纹理的三种主要方法是:

  1. 统计方法(平滑、粗糙、粒状的等纹理特征)
  2. 结构方法(像元的排列,如基于规则间距平行线的纹理描述)
  3. 频谱方法(基于傅里叶频谱特性,主要用于检测图像中的全局周期性,方法是识别频谱中的高能量的窄波峰)

4.3.1 - 统计方法

描述纹理的最简单方法之一是使用一副图像或一个区域的灰度级直方图的统计矩。令Z是表示灰度的一个随机变量,并令 p ( z i ) , i = 0 , 1 , 2 , , L 1 p(z_i),i=0,1,2,\dots,L-1 为相应的直方图,其中L是不同灰度级的数量,关于其均值的Z的第n阶矩为
u n ( z ) = i = 0 L 1 ( z i m ) n p ( z i ) u_n(z)=\sum_{i=0}^{L-1}(z_i-m)^np(z_i)
m是z的均值(平均灰度)
m = i = 0 L 1 z i p ( z i ) m=\sum_{i=0}^{L-1}z_ip(z_i)

注意 u 0 = 1 , u 1 = 0 u_0=1,u_1=0 二阶矩[方差 σ 2 ( z ) = u z ( z ) \sigma^2(z)=u_z(z) ]在纹理描述中特别重要。它是灰度对比度的度量,可用于建立相对平灰度的描述子,例如度量
R ( z ) = 1 1 1 + σ 2 ( z ) R(z)=1-\frac{1}{1+\sigma^2(z)}
对于恒定灰度区域为0(该区域方差为0),而对于较大的 s i g m a 2 ( z ) sigma^2(z) 值,其接近于1,因为对灰度级图像方差值增大而增大的。

三阶矩是直方图偏斜度的度量,而四阶矩是直方图相对平坦度的度量,五阶矩和更高阶矩不容易与直方图形状联系起来,但它们的确提供了纹理内容的进一步量化辨别。

在这里插入图片描述

使用直方图计算得到的纹理度量不懈怠像素彼此之间的相对位置的信息,但是这个信息很重要,所以我们使用一种方法叫共生矩阵

令Q是定义两个像素彼此相对位置的一个算子,并考虑一副具有L个可能灰度级的图像f,令G为一个矩阵,其元素 g i j g_{ij} 是灰度为 z i z_i z j z_j 的像素对出现在f中有Q所指定的位置处的次数,按照这种方法形成的矩阵成为灰度共生矩阵

在这里插入图片描述

在这里插入图片描述

4.3.2 - 结构方法

结构法的基本思想是,一个简单的“纹理基元”可借助一些规则用于形成更复杂的纹理模式,这些规则限制基元(或这些基元)的可能排列的数量。

4.3.3 - 频谱方法

对纹理描述有用的傅里叶频谱的三个特征:

  1. 频谱中突出的尖峰给出纹理模式的主要方向;
  2. 频率平面中尖峰的位置给出模式的基本空间周期;
  3. 采用滤波方法消除任何周期成分而留下非周期性图像元素,然后采用统计技术来描述。

猜你喜欢

转载自blog.csdn.net/HHH_ANS/article/details/85196655