(冈萨雷斯)数字图像处理 第11章

第11章 表示和描述
引言
表示一个区域涉及两种选择:(1)根据其外部特征(边界)来表示区域,或(2)根据其内部特征(如组成该区域的像素)表示区域。下一项任务是基于所选择的表示来描述区域。例如,区域可由其边界表示,边界可用特征对其进行描述,如长度、连接端点的直线的方向,以及边界上凹陷的数量。
当我们关注的点是形状特征时,可选择一种外部表示;而当关注的重点是内部属性如颜色和纹理时,可以选择一种内部表示。有时,需要同时使用这两种表示。无论哪种情形,选择用来作为描绘子的特征都应尽可能地对大小、平移和旋转不敏感。


11.1 表示
11.1.1 边界追踪
Moore边界追踪算法


11.1.2 链码
链码用于表示由顺次连接的具有指定长度和方向的直线段组成的边界。通常,这种表示基于这些线段的4连接或8连接。每个线段的方向使用一种数字编号发难编码。以这种方向数字序列表示的编码成为佛雷曼编码。
数字图像通常以网格形式来获取并处理,在这种网格形式中,x和y方向的间距相等,所以链码可以通过追踪一个边界来产生,即,以顺时针方向,并对连接每对像素的险段赋予一个方向的方法产生。这种方法通常是不可行的,原因有二:(1)得到的链码往往太长;(2)噪声或不完美分割沿边界引起的任何较小干扰都会导致编码的变化,而这种变化于边界的主要性状特征可能是不相关的。
边界的链码取决于起始点。但是,链码可以通过一个简单的过程关于起始点归一化,过程如下:我们简单地将链码视为方向号码的一个循环序列,并重新定义起始点,以便得到号码序列的最小整数值。我们也可以针对旋转归一化,方法是使用链码的一次差分来替代链码本身。这个差分是通过计算链码中分割两个相邻像素的方向变化的数得到的。如果我们把链码作为循环序列来关于起始点归一化,则差分的第一个元素是通过使用链码的最后一个元素和第一个元素间的转变来计算得到的。


11.1.3 使用最小周长多边形的多边形近似
数字边界可以用多边形以任意精度来近似。对于一条闭合边界,当多边形的边数等于边界上的点数时,这种近似会变得很精确。此时,每个相邻的点定义了多边形的一条边。多边形近似的目的是使用数量尽可能少的线段来获取给定边界的基本形状。适度复杂的多边形近似技术还是很适合于图像处理任务。在这些近似技术中,最有效的一种技术是使用最小周长多边形(MPP)来表示边界。


基础
单元的大小决定着多边形的近似程度。在给定的应用中,我们的目的是使用合适的最大可能单元大小,以最少的顶点数来产生MPP。MPP的顶点要么与内墙中的凸顶点一致,要么与外墙中的凹定点的镜像顶点一致。


MPP算法
围成一条数字边界的单元集合称为单元组合体。
观察结果说明如下:
1.由简单连接的单元组合体是非自交的。
2.MPP的每个凸顶点都是一个W顶点,但并非边界的每个W顶点都是MPP的一个顶点。
3.MPP的每个镜像凹顶点都是一个B顶点,但并非边界的每个B顶点都是MPP的一个顶点。
4.所有的B顶点要么在MPP上,要么在MPP外;所有的W顶点,要么在MPP上,要么在MPP内。
5.单元组合体中包含的顶点序列的最左上角顶点,总是MPP的一个W顶点。

MPP的优势是即使顶点数不多时,仍然可以保留原始边界的所有主要特征,另一个优点是可以进行边界平滑。


11.1.4 其他多边形近似方法
聚合技术
基于平均误差或其他准则的聚合技术已经运用到多边形近似技术问题。一种方法是沿一条边界来聚合一些点,直到拟合这些聚合点的直线的最小均方误差超过某个预设的阈值。当这种条件出现时,存储该直线的参数,将误差设为0,并且重复该过程,沿边界聚合新的点,直到该误差再次超过预设的阈值。这一过程结束后,相邻线段的交点就构成多边形的顶点。此种方法的主要难点是,得到的近似顶点并不总是对应于原始边界中的形变(如拐角)。


分裂技术
分裂边界线的一种方法是将线段不断地细分为两部分,直到满足规定的准则为止。例如,一个可能的要求是:一条边界线段到其两个端点的直线间的最大垂直距离不超过一个预设的阈值。如果准则满足,则与直线有着最大距离的点就成为一个顶点,这样就将初始线段切分成了两条子线段。这种方法在寻找变化显著的点时具有优势。对一条闭合边界,最好的起始点通常是边界上的两个最远点。


11.1.5 标记图
标记图是边界的一维函数表示,它可以使用各种方法来生成。一种最简单的方法是以角度函数的形式画出质心到边界的距离。然而,不管如何生成标记图,基本概念都是将边界简化为描述起来可能比原始二维边界更简单的一维函数。
由刚才描述的方法所生成的标记图是平移不变的,但他们的确取决于旋转和缩放。通过寻找一种选取相同起始点来生成标记图的方法,可实现关于旋转的归一化,而不用考虑形状的方向。这样做的一种方法是,将距质心最远的点选为起始点,假设这个点对于我们感兴趣的每个形状而言都是唯一的。另一种方法是在本征轴上选取距质心最远的点。这种方法的计算量更大,但更为稳定,因为本征轴的方向是用所有轮廓点确定的。还有一种方法是获得该边界的链码。
根据关于两轴缩放一致且以等间隔\theta取样的假设,形态大小的变化会导致响应标记图的幅值变化。对此进行归一化的一种方法是,对所有函数进行缩放,以便它们具有相同的值域,譬如[0,1]。这种方法的主要优点是简单,但存在潜在的严重缺陷,即对整个函数的缩放只依赖于两个值:最小值和最大值。如果形状带有噪声,那么这种依赖性会成为各个物体的误差来源。一种更为稳定的方法是,将每个样本除以标记图的方差。使用方差会产生一个可变缩放因子,该因子与尺寸变化成反比。无论使用什么方法,基本思想都是消除对尺寸的依赖性,同时保持波形的基本形状。
距离和角度并不是生成标记图的唯一方法。比如,另一种方法是,沿着边界行进,并对于边界上的每个点,画出边界线在这一点的切线和参考线之间的角度,它携带着有关于基本形状特征的信息。这种方法的一种变体是用所谓的斜率密度函数作为标记图。该函数是正切角值的直方图。由于直方图是值的密集程度的度量,故斜率密度函数强烈地反应了具有恒定正切角的边界部分(直线段或近似直线段),且在角度快速变化的部分(拐角或其他急剧弯曲位置)存在较深的波谷。


11.1.6 边界线段
将边界分解为险段降低了边界的复杂性。当边界线包含一个或多个携带形状信息的明显凹度时,这种方法尤其具有吸引力。
一个任意集合S的凸壳H是包含S的最小凸集。差集H-S称为集合S的凸缺。区域边界可以按照如下方式来分割:追踪S的轮廓,并标记进入或离开一个凸缺的转变点。在原理上,这种方案与区域大小和方向无关。
实际上,由于数字化、噪声和分割变形的影响,数字边界往往是不规则的。这些影响通常会导致在边界上有着随机散布的无意义的小凸缺。与其试图通过后处理分出这些不规则边界,不如在对边界分割前用普通方法平滑边界。很多方法可以做到这一点。一种方法是追踪边界,并使用一个像素沿该边界的k个相邻像素的平均坐标代替这个像素的坐标。这种方法适用于较小的不规则边界,但它耗费时间且难以控制。较大的k值会导致过度平滑,较小的k值在某些边界线段可能会使平滑不够充分。一种更为稳定的技术是,在找到一个区域的凸缺前,先使用多边形近似。我们感兴趣的数字边界都是简单的多边形。


11.1.7 骨架
表示平面区域内结构形状的一种重要方法是将它简化为图形。这种简化可以通过一种细化(也称为骨架化)算法得到该区域的骨架来实现。
一个区域的骨架可以用Blum提出的中轴变换(MAT)来定义。
区域MAT有一个直观的定义,该定义基于所谓的"草原之火概念"。将一个图像区域想象为由甘草组成的平坦大草原,且假设由草原边界点火。火线以相同的速度向区域中心推进。区域的MAT是同一时间多个火线到达点的集合。
尽管一个区域的MAT会生成直觉上令人满意的骨架,但直接实现这一定义需要大量的计算。实现涉及计算每个内部点到一个区域边界上的每个点的距离。为了改善计算效率,人们提出了很多算法,即迭代删除一个区域的边界点的细化算法,删除这些点时要满足如下约束条件:(1)不能删除端点;(2)不能破坏连接性;(3)不能导致区域的过度腐蚀。


以下给出细化二值区域的一种算法。假设区域点的值为1,背景点的值为0。此方法是对给定区域的边界点连续应用两个基本步骤,边界点是值为1且至少有一个相邻像素的值为0的像素。如果满足如下条件,则步骤1将一个轮廓点p1标记为要删除的点:
(a)2<=N(p1)<=6
(b)T(p1)=1
(c)p2·p4·p6 = 0
(d)p4·p6·p8 = 0
N(p1)表示p1的非零像素数量,T(p1)表示排序序列p2,p3,...,p8,p9,p2中从0到1的转换次数
在步骤2中,保持(a)(b)条件不变,(c)(d)变为(c')(d')
(c‘)p2·p4·p8 = 0
(d’)p2·p6·p8 = 0
把步骤1用于所考虑的二值区域的所有边界像素。如果不满足(a)到(d)中的任意一个或者几个,则保持所讨论的点的值不变。如果满足所有条件,则将该点标记为删除点,但是需要该点要等到处理完所有边界的时候才能删除。这种延迟可防止算法执行期间数据结构的改变。在对所有边界点进行完步骤1之后,删除已标记点(标为0值)。然后,按照与步骤1相同的方式,对所得的结果应用步骤2。


这样,细化算法的一次迭代算法步骤如下:(1)应用步骤1,标记待删除的比啊结点;(2)删除已标记点;(3)应用步骤2来标记剩余的待删除边界点;(4)删除已标记点。反复应用这个过程,直到再也没有待删除的点位置,此时算法终止,生成了该区域的骨架。












猜你喜欢

转载自blog.csdn.net/weixin_40516558/article/details/79885683