第11章:表示和描述

目录

1 表示

1.1 边界追踪

1.2 链码

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

1.4 标记图

1.5 边界线段

1.6 骨骼

2 边界描绘子

2.1 一些简单的描绘子

2.2 形状数

2.3 傅里叶描绘子

3 区域描绘子

3.1 一些简单的描绘子

3.2 拓扑描绘子

3.3 纹理

3.4 不变矩

二、实验

1.佛雷曼链码

2.骨骼化

1 表示

分割区域时,

  • 我们关注的重点是形状特征,可选择一种外部表示;
  • 重点是内部属性如颜色和纹理时,可以选择一种内部表示。
  • 或者同时使用这两种表示。

无论哪种情形,选择用来作为描绘子的特征都应尽可能地对大小、平移和旋转不敏感。本章中讨论的多数描绘子满足一种或多种这样的特性。

1.1 边界追踪

算法要求一个区域的边界上的点以顺时针(或逆时针)方向排序。该算法的输出是排过序的点的序列。

我们假设:

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

为方便起见,我们仅限于讨论单个区域。通过单独地处理各个区域,该方法可扩展到多个不相交的区域。

追踪边界步骤:

1.令起始点b为图像中左上角标记为1的点。使用c,表示 b,西侧的邻点〔见图1.1(b) ]。很明显,c总是背景点。从c,开始按顺时针方向考察b的8个邻点。令b,表示所遇到的值为1的第一个邻点,并直接令c,(背景)是序列中b,之前的点。存储b和b,的位置,以便在步骤5中使用。
2.令b=b,和c=c[见图1.1(c) ]。
3.从c开始按顺时针方向行进,令b的8个邻点为n, n,… , ng。找到标为1的第一个n o4.令b=n,和c = nk-o
5.重复步骤3和步骤4,直到b= b0且找到的下一个边界点为b。

图1.1 边界追踪

1.2 链码

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

图1.2.1  4和8方向链码

图1.2.2中的起始点位于边界的左上角处,它给出了链码0766…12。如所期望的那样,结果编码表示的精度取决于取样网格的间距。

图1.2.2 8方向链码

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

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

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

图1.3.1 最小周长多边形生成

MPP算法

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

1.4 标记图

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

使用r(\theta )=Asec (\theta)函数形成的标记图,如下图所示。

图1.4 圆形和正方形的标记图

1.5 边界线段

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

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

图1.5 分割的边界

1.6 骨骼

表示一个平面区域结构形状的重要方法是把 它削减成图形。这种削减可以通过细化(也称为抽骨架)算法,获取区域的骨架来实现 。Blum的中轴变换方法(MAT):设:R是一个区域,B为R的边界点,对于R中 的点p,找p在B上“近”的邻居。如果p有多于一个的邻居,称它属于R的中轴(骨架)。

2 边界描绘子

2.1 一些简单的描绘子

边界的长度是其最简单的描绘子之一。一条边界上的像素数量可以给出其长度的粗略近似。对于在两个方向上以单位间距定义的链码曲线,垂直分量和水平分量的数量加上对角分量的√2倍,可给出曲线的准确长度。
边界B的直径定义为

Diam(B)=max_{i,j}[D(p_i,p_j)]

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

2.2 形状数

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

图2.2 4,6,8的所有形状

2.3 傅里叶描绘子

图2.3显示了xy平面内的一个K点数字边界。从任意点(x0,y0)开始,以逆时针方向在该边界上行进时,会遇到坐标对(x0,y0),(x1, y1),(x2,y2)….。这些坐标可以表示为x(k)=x_k , y(k)= y_k的形式。使用这种表示法,边界本身可以表示为坐标序列s(k)= [x(k),y(k),k=0,1,2,…,K-1。此外,每个坐标对可当做一个复数来处理,即

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

其中k = 0,1,2,…,K- 1。也就是说,x轴为复数序列的实轴, y轴为复数序列的虚轴。尽管对该序列的解释是全新的,但边界本身的性质并未改变。当然,这种表示方法的一大优点是它将二维问题简化成了一维问题。

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

3 区域描绘子

3.1 一些简单的描绘子

一个区域的面积定义为该区域中像素的数量。区域的周长是其边界的长度。尽管面积和周长时也被用做描绘子,但它们主要应用于感兴趣区域尺寸不变的情形。这两个描绘子频繁用于度量一个区域的致密性,定义为(周长)?/面积。另一个稍微不同的(标量乘子内)致密性描绘子是圆度率,即一个区域的面积与具有相同周长的一个圆(最致密的形状)的面积之比。周长为Р的一个圆的面积为2/4T。因此,圆度率Rc由下式给出:

R_c=\frac{4\pi A}{P^2}

其中,A是所讨论区域的面积,Р是其周长。对于圆形区域,该度量值为1,对于方形区域,该度量值为\pi/4。致密性是一个无量纲的度量,当然,在忽略调整数字区域大小和旋转数字区域时可能引入的计算误差的情形下,它对均匀尺度变化和方向不敏感。
用做区域描绘子的其他简单度量包括灰度级的均值和中值、最小灰度值和最大灰度值,以及其值高于和低于均值的像素数。

3.2 拓扑描绘子

拓扑特性对于图像平面区域的整体描述是很有用的。简单来说,拓扑学是研究未受任何变形影响的图形的性质,前提是该图形未被撕裂或粘连(有时称为橡皮膜变形)。一个带有两个孔洞的区域。如果一个拓扑描绘子由该区域内的孔洞数量来定义,那么这种性质明显不受拉伸或旋转变换的影响。然而,一般来说,如果该区域被撕裂或折叠,那么孔洞数会发生变化。注意.由于拉伸会影响距离,故拓扑特性与距离或基于距离度量概念的任何特性无关。

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

E=C-H

欧拉数也是一种拓扑特性。例如,图3.2.1中所示的区域有分别等于0和-1的欧拉数,因为“A”有一个连通分量和一个孔洞,而“B”有一个连通分量和两个孔洞。

图3.2.1 欧拉数为0和-1的区域


使用欧拉数,可非常简单地解释由直线线段表示的区域(称为多边形网络)。图3.2.2显示了一个多边形网络。将这样一个网络的内部区域分类为面和孔通常是很重要的。用V表示顶点数,用Q表示边数,用F表示面数,那么可得出称为欧拉公式的如下关系:

v-Q+F=C-H
 

图3.2.2 包含一个多边形的区域

3.3 纹理

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

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

3.4 不变矩

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

m_{pq}=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}x^py^qf(x,y)

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

式中p= 0,1,2,…和q=0,1,2,…,其中

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

式中,

\gamma =\frac{p+q}{2}+1 

其中p+q=2,3,...

二、实验

1.佛雷曼链码

I=imread('2.png');%读入图像
f=rgb2gray(I);

subplot(131),imshow(f),title('原始图像');
h = fspecial('average', 9);
g = imfilter(f, h ,'replicate');
subplot(132),imshow(g),title('9×9平均模板处理结果');
gB = im2bw(g,0.5);
subplot(133),imshow(gB),title('阈值处理后结果');

2.骨骼化

I=imread('1.jpg');
f = rgb2gray(I);
subplot(231),imshow(f),title('原始的图像');
f=im2double(f);   %不是二值图像
h = fspecial('gaussian',25,15);     %加入高斯噪声
g = imfilter(f,h,'replicate');          %用高斯空域模板平滑后的图像
subplot(232),imshow(g),title('高斯空域模板平滑');
g = im2bw(g,1.5*graythresh(g));    %对平滑后图像进行阈值处理
subplot(233),imshow(g),title('平滑后图像进行阈值处理');
s = bwmorph(g,'skel',Inf);   
subplot(234),imshow(s),title('骨骼处理后得到的图像');
s1 = bwmorph(s,'spur',8);
subplot(235),imshow(s1),title('刺状突起去除8次后');
s2 = bwmorph(s,'spur',7);
subplot(236),imshow(s2),title('刺状突起去除7次后');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值