第十一章:表示和描述 1、 表示的方法有:边界追踪、链码、多边形近似法等; 2、 边界的描绘子有:偏心率、形状数、傅立叶描绘子、统计矩等; 3、 区域的描绘子有:圆度率、拓扑描绘子、纹理、不变矩等; 4、 使用主分量进行的描述和关系描绘子适用于边界描述和区域描述; 5、 最后总结目标识别的学习情况。 |
表示一个区域:
(1)外部特征(如边界)来表示区域-->用特征对其描述(如长度,边界缺陷数量)
(2)内部特征(如像素)来表示区域-->内部表示(如颜色、纹理)
表示和描述应该是个递进的关系,表示旨在以更(精确/方便/高效)的方式组织数据,而描述旨在从表示中总结某种模式以便于任务的完成。前者更贴近数据,后者更贴近应用。
表示部分:边界表示
描述部分:边界描述、区域描述、关系描述、主分量描述
11.1 表示
主要分2个阶段:边界追踪(轮廓提取)、基于特定目标(精确/方便/高效)的边界表示。
边界追踪部分主要介绍Moore算法;边界表示部分主要介绍Freeman链码、边界的多边形近似、标记图、边界线段和骨架。
1)边界追踪
OpenCV对应的函数为findContours,可以指定只提取外轮廓,获得多个轮廓的层次关系,初级的近似方法。
应用边界追踪算法前应确保:图像已二值化;图像边界已用0扩展(假设边界为1)。此外基础的moore算法仅适用外轮廓,对于内轮廓,可用形态学方法将其转为外轮廓再查找。
Moore边界追踪算法:
step1: 找到图像左上角为1的点b0为边界起始点。b0左边的点为c0(显然值为0),从c0开始按顺时针方向考察b0的8邻域,找到的第一个值1的点为b1(边界的第2个点),令扫描到b1前的点为c1。
step2: 赋值b=b1,c=c1。
step3: 从c开始顺时针扫描b的8邻域,找到第一个值1的点n,其之前的点n'(背景点)。
step4: 赋值b=n,c=n'。
step5: 重复step3和step4,直到b=b0且下一个边界点为b1。
注:上述算法一次只能扫描一个边界,一个办法是将找到的点赋值为0再重复扫描。
2)Freeman链码
链码使用方向(4/8)和单位长度(对图像可以为一个像素)来替代坐标表示边界(图1-1a),考虑到链码长度的限制和噪声对边界表示的影响,可以对单位长度进行适当放大重采样(图1-1b)。
图1-1. 边界链码表示(《数字图像处理》)
链码表示首先要解决的问题是:旋转和起始位置的不变性。
旋转不变性可以用链码的一次差分解决(按图1-1a逆时针方向,链码的后一个方向与前一个方向的转换次数,链码的第一个值用某端的方向与其差分得到);之后对差分链码做循环右移,取号码序列整数值最小的那个(就是前面0最多的)为最终表示以保证起始位置的不变性。
实际中,如果以边界距离最远的两个点为长轴,与之垂直且距离最远的两个点为短轴。将图1-1a的0方向轴旋转到与长轴平行,再计算差分链码可以更好的归一化边界旋转的问题(图1-2)。
图1-2. 链码归一化(《数字图像处理》)
3)使用最小周长多边形的多边形近似
边界的多边形近似使得可以用尽可能少的线段来表达边界的基本形状。
此外可能更有用的处理是:边界的外接圆、外接矩形、凸包等(OpenCV有实现),不过这些属于边界描述了。
对于多边形近似,《数字图像处理》介绍了一种最小周长多边形(MPP)的方法,并附有MATLAB的实现。
DP算法:
OpenCV提供的函数approxPolyDP是基于Douglas-Peucker(WIKI)算法实现的。思路比MPP简单很多(图1-3)。
图1-3. DP算法(《数字图像处理》)
MPP算法:
1、表示边界有明显优势;
2、可以进行边界平滑;
556x556的二值图 | 8连接边界(顶点数1900) | 2的方形单元得到的MPP(顶点数206) |
3的方形单元得到的MPP(顶点数160) | 4的方形单元得到的MPP(顶点数127) | 6的方形单元得到的MPP(顶点数92) |
8的方形单元得到的MPP(顶点数66) | 16的方形单元得到的MPP(顶点数32) | 32的方形单元得到的MPP(顶点数13) |
4)其他
聚合技术:
分裂技术:
5) 标记图
试图用一维函数表示边界。
一种简单的方法是以角度的函数形式记录质心到边界的距离(图1-4)。
图1-4. 一种标记图(《数字图像处理》)
图1-4的方法是平移不变的,但对旋转和缩放敏感。
为了实现旋转归一化,需要找到选取相同起始点的方法。类似链码里介绍的那样,选取距离长短轴最远的点即可。
为了实现缩放归一化,可以对每个值除以方差(简单的最大最小值归一化会因为噪声的影响而带来较大误差)。
6) 边界线段
通过将边界分段以简化描述过程。以进入和离开一个凸缺为依据,对边界分段(图1-5)。
一个任意集合S的凸壳H是包含S的最小凸集,H-S称为集合S的凸缺D.标记加入或离开一个凸缺的转变点(红色线段)
图1-5. 边界分段(《数字图像处理》)
7). 骨架抽取
这是种表示区域的方法。
一个区域的骨架可以用中轴变换(MAT)来定义。
在这里有形态学思路的骨架方法介绍。此外,还有Zhang提出的一种骨架抽取算法(A fast parallel algorithm for thinning digital patterns)。
图1-6. Zhang骨架抽取算法
11.3 边界描绘子
主要讨论边界的形状数描述、傅里叶描述和其他简单的描述。
1)基础描述
边界长度:边界的像素数粗略近似。
边界直径:相隔最远的两个点的距离(链码一节介绍的长短轴)
边界偏心率:长轴/短轴
其他规范化近似:外接圆、外接矩形、外接凸包
2)形状数描述
形状数:值最小的链码差分码;
这个概念的意义在于,你可以指定一个边界的阶(以4-方向为例,对于闭合边界,其阶为大于等于4的偶数),然后对边界做重采样。
如图1-2中指定形状数阶数为18,首先获得其基本矩形(左2),然后计算其最接近18的划分(6*3,左3)。
在轮廓匹配中,可以用形状数作为参考:以4-方向为例,依次取阶数K=4,6,8...2n(显然随着K的增大,边界描述越精确),对待匹配的两组边界生成形状数,比较两组形状数,取d为使得两者相同的最大阶。显然对于相同的两条边界,d=无穷大。
3)傅里叶描绘子
使用一个复数来描述一个点:s(k) = x(k) + jy(k),然后对其做离散傅里叶变换:
这里介绍频域的4种边界操作(图2-1):一种是通过忽略部分高频傅里叶系数获得边界的近似描述(低频决定边界形状,高频决定边界细节);另三种是旋转、平移、缩放。
a. 边界近似
取前P个傅里叶系数做逆变换:
方便起见,直接将后K-P个系数赋0做逆变换就可以了。
b. 边界旋转
需要注意的是这里的旋转是以序列中(0,0)为原点的,将序列减去质心就可以实现以质心为原点旋转了。
c. 边界平移
其中
,乘以冲激序列的傅里叶变换。
d. 边界缩放
,其中a为缩放系数
图2-1. 边界傅里叶描述
如图2-1所示,a为原始图像,b~e为使用Moore边界追踪算法后在频域做平移、旋转、缩放、近似。其中旋转部分做了中心平移,近似部分取前2/3的傅里叶系数做逆变换。
4)统计矩
11.3 区域描绘子
主要讨论区域的纹理描述、不变矩描述和其他简单描述
1)简单描绘子
区域面积、周长都是用相应像素数来粗略估计
区域致密性描绘子:(周长)^2 / 面积。显然圆形具有最小的致密性。
区域圆度率:区域面积 / 具有相同周长的圆的面积。(Rc=4πA/p^2)--A面积;p周长
其他:灰度级的中值、均值、最小灰度值、最大灰度值、高于和低于均值的像素数。
2)拓扑描绘子
与距离或基于距离度量概念的任何特性无关。
孔洞数量、连通分量的数量、欧拉数、
欧拉公式:
V-Q+F=C-H=E
顶点数-边数+面=连通区域-孔洞=欧拉数
3)纹理
纹理描述主要有三种方法:统计方法、结构方法、频谱方法。
- 统计方法考察纹理的平滑、粗糙、粒状等特征;
- 结构方法考察纹理的排列描述;处理图像像元的排列;
- 频谱方法考察纹理的周期性。基于傅里叶频谱的特性。
以下主要讨论统计方法的几种指标
a. 统计方法
对一个区域,统计其归一直方图,计算其均值的z的第n阶矩为
,
其中m是平均灰度
描述区域的灰度对比变化。由其构成的归一化R度量对粗糙的区域有较大响应
灰度共生矩阵(GLCM)
GLCM不仅考察灰度分布,还考虑了像素的相对位置。
图3-1. 灰度共生矩阵(《数字图像处理》)
令
,由GLCM可得到以下统计量最大概率:
,度量G的最强响应,值域为[0,1]对比度:
,纹理越深,该值越大相关性:
,其中
,
。邻域变化越小,相关性值越大。能量:
,能量越大表示当前纹理越规则熵:
,熵越大表示当前纹理越复杂
b. 结构方法
一个简单的“纹理基元”可以借助一些规则用于形成更复杂的纹理模式。
c.频谱方法
非常适合描述图像中的二维周期或近似二维周期模式的方向性。
3个特点:
(1)频谱中突出的尖峰给出纹理模式的主要方向;
(2)频谱中突出的尖峰的位置给出模式的基本空间周期;
(3)采用滤波方法消除任何周期分量而留下的非周期性图像元素;
4)不变矩描述
令图像f(x,y)尺寸M*N,其二维(p+q)阶矩为
,
相应的(p+q)阶中心矩为
其中
。由以上定义获得其归一化中心矩:
,其中
。
根据归一化中心矩可获得7个不变矩(hu不变矩),其对同一区域的平移、缩放、旋转、镜像能保持一致描述
11.4 使用主分量进行描述
主分量描述适用于边界和区域。用在区域(图像)上可以抽取方差最大的分量(主分量),用在边界上可以对其做缩放、平移和旋转的归一化。
主分量变换,又叫霍特林变换。
主分量(PCA)一般用于数据降维,因为大特征值对应图像细节(高频)。
主分量的计算过程可归纳为(具体分析参考):由多组特征向量计算均值向量m,由此得到协方差矩阵,计算该矩阵(实对称)的特征值,按从大到小排列,选择前n个特征值对应的特征向量,按行组成变换矩阵A,这样,对原来的每一条向量x,其映射得到的向量y=A(x-m)。
1)使用主分量描述图像
考虑一系列M*N大小的6波段遥感图,将其数据组织为(M*N)*6的二维矩阵,每一行即为一个特征向量。
图3-1为取前4个特征值恢复得到的第6波段图像,可以看到,原始图比较模糊,但恢复的图像很清晰,因为模糊的部分(对应小特征值)已被丢弃
图3-1. 左为原图,右为PCA后的图
2)使用主分量对尺度、平移、旋转变换归一化
假设共N个点,则组织数据为N*2
对所有特征向量,应用y=A(x-m)即获得归一化描述。
11.5 关系描绘子
关系描述旨在用一套模式来描述边界或区域。
关系描述首先定义一些基本描述元,如用a表示向右一个像素,b表示向下一个像素;然后定义一套规则,
如
图4-1. 关系描述(《数字图像处理》)
另一种是用树的形式描述每个边界或区域的从属关系。
标签:11,边界,数字图像处理,纹理,区域,归一化,链码,描述 From: https://blog.51cto.com/u_12667998/6565412