数字图像处理——第十一章 标识和描述

目录

引言

11.1 表示

11.1.1 边界追踪

11.1.2 链码

 11.1.3 使用最小周长多边形的多边形近似

11.1.5 标记图

11.1.6 边界片段

11.1.7 骨架

11.2 边界描绘子

11.2.1 一些简单的描绘子

11.2.2 现状数

11.2.3 傅里叶描绘子

11.2.4 统计矩 

11.3 区域描绘子

11.3.1 一些简单的描绘子

11.3.2 拓扑描绘子 

11.3.3 纹理

11.3.4 不变矩

11.4 主成分分析


引言

将一幅图像分割成多个区域后,分割后的像素集经常以一种合适于计算机进一步处理的形式来表示和描述。

表示
表示一个区域的两种选择:

  1. 根据区域外部特征(如边界)来表示区域-
  2. 根据内部特征(如组成该区域的像素)来表示区域

表示是直接具体地表示目标,好的表示方法应具有节省存储空间易于特征计算等优点。
表示的下一步工作是描述。表示方式的选择要使数据有利于描述工作的展开。
当关注的重点是形状特征时,可选择外部表示;当关注的重点是内部属性(如颜色和纹理)时,可选择内部表示。

描述
描述是较抽象地表示目标。好的描绘子都应尽可能对目标的大小、平移、旋转等不敏感,这样的描绘子比较通用。

表示和描述应该是个递进的关系,表示旨在以更(精确/方便/高效)的方式组织数据,而描述旨在从表示中总结某种模式以便于任务的完成。表示侧重于数据结构,而描述侧重于区域特性以及不同区域间的联系和差别。
常见的图像特征分为灰度、纹理和几何形状等。其中,灰度和纹理属于内部特征,几何形状属于外部特征。

11.1 表示

11.1.1 边界追踪

该算法的输出是排过序的点的序列。
给定一个二值区域R或其边界,追踪R的边界或给定边界的算法由如下步骤组成:

  1. 令起始点b_{0}为图像中左上角标记为1的点。使用c_{0}表示 b_{0}西侧的邻点。很明显,c_{0}总是背景点。从c_{0}开始按顺时针方向考察b_{0}的8个邻点。令 b_{1}表示所遇到的值为1的第一个邻点,直接令 c_{1}(背景)是序列中b_{1}之前的点。存储b_{0}b_{1}的位置。
  2. b=b_{1}c=c_{1}
  3.  从c开始按顺时针方向行进,令b的8个邻点为n_{1},n_{2},...,n_{8}。 找到标为1的第一个n_{k}
  4. b=n_{k}c=n_{k-1}
  5. 复步骤3和步骤4,直到b=b_{0}。且 找到的下一个边界点为b_{1}

当算法 停止时,所找到的b点的序列就构成了排列后的边界点的集合。

11.1.2 链码

链码被用来以顺序连接的具有指定长度的直线段来表示边界。通常,这种表示基于这些线段的4连接和8连接。每个线段的方向使用一个数字编号方案编码,如下图所示,以这种方向性数字序列表示的编码称为佛雷曼编码。

数字图像通常以网格形式来获取并处理,在这种网格形式中,x和y方向的间距相等,所以链码可以通过沿着顺时针方向,并对连接每对像素的线段赋予一个方向的方法产生。这种方法通常不可接受,原因有二:1)得到的链码往往太长,2)噪声或不完美分割沿边界引起的任何较小干扰都会导致编码的变化,而这种变化与边界的主要形状特征可能不是相关的。

经常用于解决这些问题的一个方法是,选取一个较大的网格间距来对边界重取样,如下图所示,然后在边界穿过网格时,将一个边界点赋给大网格的一个节点,具体取决于原始边界与该节点的接近程度,再后,按这种方法得到的重取样边界可由一个4链码或8链码表示。

 11.1.3 使用最小周长多边形的多边形近似

数字边界可以用多边形任意精度来近似。对于一条闭合边界,当多边形的边数等于边界上的点数时,这种近似会变得很精确,此时,每对相邻的点定义了多边形的一条边。多边形近似的目的是使用数量尽可能少的线段来获取给定边界的基本形状。通常,该问题并不容易求解,且求解过程会转化为耗时的迭代搜索。然而,适度复杂的多边形近似技术还是很适合于图像处理任务。在这些近似技术中,最有效的一种技术是使用最小周长多边形(MPP)来表示边界,下面我们会讨论其定义。

基础

产生MPP的算法的一种直观方法是,用下图那样一组连接单元的集合封装一条边界(图中灰色部分,扫描件有点不清晰)。我们可以将该边界想象为一个橡皮条。允许橡皮条收缩时,橡皮条会受到由这些单元定义的边界区域内、外墙的约束。最终,该收缩回产生一个(关于这种几何排列的)最小周长的多边形,它被限制在用单元条封闭的区域内。注意,在该图中,所有MPP的顶点与内墙或外墙的角点一致。

上面讨论的单元方法将由原始边界包围的物体的形状简化为上图中间图中由灰墙围城的区域。下图中将这一形状显示为暗灰色。我们看到,其边界由4连接的直线段组成。假设我们按顺时针方向追踪这条边界,追踪时遇到的每个转向要么是一个凸顶点,要么是一个凹顶点,其中顶点的角是4连接边界的内角。凸顶点和凹顶点在下图中分别显示为白点和黑点。注意,这些顶点是下图中间图中浅灰色边界区域的内墙的顶点,暗灰色区域中的每个凹顶点(黑点)在浅灰色墙中有一个对应的“镜像”顶点,镜像顶点位于这个凹顶点的对角处。下图最右边显示了所有凹顶点的镜像顶点,为了方便参考,图中叠加了上图中MPP。我们看到MPP的顶点要么与内墙中的凸顶点(白点)一致,要么与外墙中的凹顶点的镜像顶点(黑点)一致。稍加思考就会发现,只有内墙的凸顶点和外墙的凹顶点才能成为MPP的顶点。因此,我们下面学习的算法只需要关注这些顶点。

MPP算法

前一段描述的围成一条数字边界的单位集合称为单元组合体。我们假设所考虑的边界本身不相交,这将产生简单连接的单元组合体。基于这些假设,并令W(白)和B(黑)分别表示凸顶点和镜像凹顶点,我们将观察结果说明如下:

  1. 由简单连接的单位组合体为界的MPP是非自相交的。
  2. MPP的每个凸顶点都是一个W顶点,但并非边界的每个W顶点都是MPP的一个顶点。
  3. MPP的每个镜像凹顶点都是一个B顶点,但并非边界的每个B顶点都是MPP的一个顶点。
  4. 所有的B顶点要么在MPP上,要么在MPP外;所有的W顶点要么在MPP上,要么在MPP内。
  5. 单元组合体中包含的顶点序列的最左上角顶点,总是MPP的一个W顶点。

这些断言已被证实证明,在下面的讨论中,我们需要计算点的三元组的方向。考虑点的三元组(a,b,c),并令这些店的坐标为a=(x1,y1),b=(x2,y2)和c=(x3,y3)。如果我们以矩阵的行来安排这些点:

则由基本矩阵分析有:

其中det(A)是A的行列式。在描述算法时,定义

11.1.5 标记图

标记是边界的一位函数表示,可以通过多种方法产生。其中最简单的方法之一就是作为角度的函数画出某个内点(例如质心)到边界的距离,极坐标就是一种最简单的标记。

11.1.6 边界片段

将边界分解为片段降低了边界的复杂度,并且通常简化了描述过程。当边界包含一个或多个携带形状信息的重要凹面时,这种方法具有吸引力。在这种情况下,使用由边界包围的区域凸壳对于边界的鲁棒分解是一种有力的工具。

任意集合S的凸壳H时包含S的最小凸集。集合的差H-S被称作S的凸缺D。

11.1.7 骨架

表示平面区域内结构形状的一种重要方法是将它简化为图形。这种简化可以通过一种细化(也称为骨架化)算法得到该区域的骨架来实现。一个区域的骨架可以用Blum提出的中轴变换来定义。边界为B的区域R的MAT如下图所示。对R中的每个点p,我们在B中找到与其最接近的邻接。如果p有多个这样的邻点,则认为p属于R的中轴(骨架)。 

11.2 边界描绘子

11.2.1 一些简单的描绘子

边界的长度:边界的长度是其最简单的描绘子。一条边界上的像素数量可以给出其长度的粗阔近似。

边界的直径

 式中,D是一种距离测度,pi和pj是边界上的点。直径的值和连接组成该直径的两个端点的直线段(该直线称为边界的长轴)的方向是边界的有用描绘子。边界的短轴定义为与长轴垂直的直线。由边界与两个轴相交的4个外部点组成的方框这样的长度,可以完全包围该边界。刚刚描述的这个方框称为基本矩形,长轴与短轴之比称为边界的偏心率。偏心率也是一个有用的描绘子。

11.2.2 现状数

如上一小节中解释的那样,链码边界的一次差分取决于起始点。形状数的阶n定义为其表示的数字个数。此外,对于闭合边界,n为偶数,其值限制了不同形状的数量。下图显示了阶为4,6,8的所有形状,以及他们的链码表示、一次差分和相应的形状数。尽管链码的一次差分与旋转无关,但总体而言,已编码的边界取决于网格的方向。 

11.2.3 傅里叶描绘子

下图显示了xy平面上的k点的数字边界。从任意点(x0,y0)开始,坐标对(x0,y0),(x1,y1),(x2,y2),…,(xk-1,yk-1)沿逆时针方向追踪遇到的边界点。

这些坐标可以表示成x(k)=x_{k}y(k)=y_{k}。使用这种标记法,边缘本身就可表达为坐标序列s(k)=[x(k),y(k)],y(k)],k=0,1,2,…,k-1。进而可将每个坐标对当做复数来处理,从而得出: 

s(k)=x(k)+jy(k)

从频域处理一章可知,序列s(k)的离散傅里叶变换(DFT)可写为: 

a(u)=\sum_{k=0}^{K-1}s(k)e^{-j2\varpi uk/K} 

复系数a(u)被称为边界的傅里叶描绘子。这些系数通过傅里叶反变换可以重构s(k): 

s(k)=\frac{1}{K}\sum_{u=0}^{K-1}a(u)e^{j2\varpi uk/K} 

然而,假设在计算傅里叶反变换时,仅使用前p个傅里叶系数,而不是使用全部系数,这相当于令上面函数中的a(u)=0,u>p-1。结果得到s(k)的近似值:

 \hat{s}(k)=\frac{1}{K}\sum_{u=0}^{P-1}a(u)e^{j2\varpi uk/P}

虽然仅使用P个傅里叶系数便得到了s^(k)的每一个分量,回想我们之前在第三章中学过的,高频分量决定细节部分,低频分量决定总体形状。因此,随着p的减少,边界细节的丢失将增加。

11.2.4 统计矩 

1)低阶矩描述图像的整体特征
2)零阶矩反应目标的面积
3)一阶矩反应目标的质心位置
4)二阶矩反应了目标的主轴、辅轴的长短和主轴的方向角。
5)高阶矩主要描述了图像的细节,如目标的扭曲度和峰态的分布等。 

描述g(r)形状的一种方法是将g(r)归一化到单位面积内,并将之当作直方图对待。换句话说,g(r_{i})可以看做r_{i}发生的概率。这种情况下,r是随机变量,矩为: 

\mu _{n}(r)=\sum_{i=0}^{K-1}(r_{i}-m)^{n}g(v_{i})

m=\sum_{i=0}^{K-1}r_{i}g(r_{i})

11.3 区域描绘子

11.3.1 一些简单的描绘子

 一个区域的面积定义为该区域中像素的数量。区域的周长是其边界的长度。尽管面积和周长有时也被用做描绘子,但它们主要应用于感兴趣区域尺寸不变的情形。

11.3.2 拓扑描绘子 

拓扑学是研究未受任何变形影响的图形的性质, 前提是该图形未被撕裂或粘连(有时称为橡皮膜变形)。 如果该区域被撕裂或折叠, 那么孔洞数会发生变化。

11.3.3 纹理

描绘区域的一种重要方法是量化该区域的纹理内容。尽管不存在纹理的正式定义,但在直觉上,这种描绘子提供了诸如平滑度、粗糙度和规律性等特性的测度。图像处理中用于描述区域纹理的三种主要方法是统计学、结构法和频谱法。

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

11.3.4 不变矩

大小为M×N的数字图像f(x,y)的二维(p+q)阶矩定义为:

 相应的(p+q)阶中心矩定义为:

其中:

 由\eta _{pq}表示的归一化中心距定义为:

 式中,

其中p+q=2,3,…。

由二阶矩和三阶矩可推出如下7个不变矩组: 

11.4 主成分分析

主成分分析适用于边界和区域。用在区域(图像)上可以抽取方差最大的分量(主分量),用在边界上可以对其做缩放、平移和旋转的归一化。主分量变换也叫做霍特林变换。主分量(PCA)一般用于数据降维,因为大特征值对应图像细节(高频)。

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值