图像处理与分析第一部分:第二部分:图像处理图像分析1.基础知识5.形态学图像处理2.空域处理6.图像分割3.频域处理7.表示与描述4.彩色图像8.特征提取2图像表示与描述图像表示与描述(ImageRepresentationandDescription)3图像表示与描述(ImageRepresentationandDescription)4图像表示与描述(ImageRepresentationandDescription)5主要内容:11.1表示方法11.2边界描绘子11.3区域描绘子11.1表示方法61.链码11.1表示方法711.1表示方法811.1表示方法9举例:若设起始点O的坐标为(5,5),则分别用如下4方向和8方向链码按逆时针顺序表示区域边界:4方向链码:(5,5)111232323000;8方向链码:(5,5)2224556000。11.1表示方法10链码表示的特点:A、只有边界的起点需用绝对坐标表示,其余点都可只用接续方向来代表偏移量;B、与用坐标值相比,链码表达可大大减少边界表示所需的数据量。11.1表示方法1111.1表示方法121311.1表示方法1411.1表示方法1511.1表示方法162多边形近似(1)问题的引出实际应用中的数字边界常由于噪声、采样等的影响而有许多较小的不规则处,这些不规则处常对链码和边界段表达产生较明显的干扰影响。(2)多边形方法的基本思想多边形是一系列线段的封闭集合,它可用来逼近大多数使用的曲线到任意的精度。在实际中多边形表达的目的是要用尽量少的线段来代表边界并保持边界的基本形状,从而用较简单的形式来表达和描述边界。11.1表示方法17(3)基于收缩的最小周长多边形法将边界看成是有弹性的线,将组成边界的像素系列的内外边各看成一堵墙,如将线拉紧则可到最小周长多边形。11.1表示方法18(4)聚合技术A、算法步骤:1)沿着边界选两个相邻的点对,计算首尾连接直线段与原始折线段的误差R。2)如果误差R小于预先设置的阈值T。去掉中间点,选新点对与下一相邻点对,重复1);否则,存储线段的参数,置误差为0,选被存储线段的终点为起点,重复1)2)。3)当程序的第一个起点被遇到,程序结束。11.1表示方法19RRT11.1表示方法20B、聚合算法存在的问题:得到的近似图形的顶点一般不对应于边界的拐点(如拐角)。因为新的线段直到超过误差的阈值才开始画。在聚合的同时进行拆分可以缓解这个难点。11.1表示方法21(4)拆分技术算法步骤:1)连接边界线段的两个端点(如果是封闭边界,连接最远点);2)如果最大正交距离大于阈值,将边界分为两段,最大值点定位一个顶点。重复1);3)如果没有超过阈值的正交距离,结束。11.1表示方法2211.1表示方法233标记(1)基本思想标记是边界的1-D泛函表达,其基本思想是把2-D的边界用1-D的较易描述的函数形式来表达。(2)最简单的标记方法先对给定的物体求出质心,然后把边界点与质心的距离作为角度的函数就得到一种标记。3.标记2411.1表示方法3.标记2511.1表示方法3.标记26(3)存在问题函数过分依赖于旋转和比例的变化。(4)改进措施-----旋转不变A、选择离质心最远的点作为起点;B、选择从质心到本征轴最远的点作为起点;C、使用差分链码的方法。11.1表示方法27(5)改进措施-----比例不变对函数进行正则化,使函数值总是分布在相同的值域里,比如说[0,1]。A、利用长短轴进行正则化;B、利用所有边界样本进行正则化。11.1表示方法4.边界分段2811.1表示方法(1)基本概念A、一个任意集合S(区域)的凸起外缘H是:包含S的最小凸起的集合。B、H-S的差的集合被称为集合S的凸起补集D。SSDS+D=H4.边界分段2911.1表示方法(2)分段算法:给进入和离开凸起补集D的变换点打标记来划分边界段。(3)优点:不依赖于方向和比例的变化S4.边界分段3011.1表示方法4.边界分段3111.1表示方法(4)存在问题噪音的影响,导致出现零碎的划分。(5)改进措施先平滑边界,或用多边形逼近边界,然后再分段。5.骨架3211.1表示方法(1)基本思想表示一个平面区域结构形状的一种重要方法是把它削减成图形。这种削减可以通过细化(也称为抽骨架)算法,获取区域的骨架来实现。(2)Blum的中轴变换方法(MAT)设:R是一个区域,B为R的边界点,对于R中的点p,找p在B上“最近”的邻居。如果p有多于一个的邻居,称它属于R的中轴(骨架)5.骨架3311.1表示方法pRB(3)存在问题:计算量大5.骨架3411.1表示方法(4)算法改进思想在保证产生正确的骨架的同时,改进算法的效率。比较典型的是一类细化算法,它们不断删去区域边界点,但保证删除满足:A、不移去端点B、不破坏连通性C、不引起区域的过度腐蚀5.骨架3511.1表示方法(5)一种细化二值区域的算法(5)一种细化二值区域的算法假设区域内的点值为1,背景值为0。由两个基本操作组成。A、基本操作1对于满足以下四个条件的边界点打标记准备删除:(a)2N(p1)6(N(p1)=p2+p3+…+p9,是点p1邻域中1的个数)(b)T(p1)=1(T(p1)是按p2,p3,…,p9顺序,0-1转换的个数)(c)p2*p4*p6=0(p2、p4、p6至少有一个0)(d)p4*p6*p8=0(p4、p6、p8至少有一个0)p9p2p1p8p3p4p7p6p5p9p2p1p8p3p4p7p6p5p9p2p1p8p3p4p7p6p537所有条件都满足,才打删除标记。删除并不立即进行,而是等到对所有边界点都打完标记后,再把作了标记的点一起删除举例:N(p1)=4S(p1)=3p2*p4*p6=0p4*p6*p8=0第2个条件没满足不打标记00p1110101p9p2p1p8p3p4p7p6p5p9p2p1p8p3p4p7p6p55.骨架B、基本操作2条件(a)、(b)与操作1相同,条件(c)、(d)改为:c’)p2*p4*p8=0d’)p2*p6*p8=0p9p2p1p8p3p4p7p6p5p9p2p1p8p3p4p7p6p55.骨架11.2边界描绘子411一些简单的描绘子(1)边界的长度A、定义:区域的边界长度。B、计算方法1)周长用边界所占面积表示,也即边界点数之和,每个点占面积为1的一个小方块。2)当把像素看作一个个点时,则周长用链码表示。此时,当链码值为奇数时,其长度记作;当链码值为偶数时,其长度记作1。即周长p表示为2NNpe211.2边界描绘子(2)边界的直径Diam(B)=max[D(pi,pj)](3)边界线的离心率:长轴和短轴的比率。A、边界最大轴a:是连接距离最远的两个点的线段。B、边界最小轴b:与最大轴垂直,且其长度确定的包围盒刚好包围边界。C、基本矩形:包围边界的矩形。边界最大轴a边界最小轴b基本矩形11.2边界描绘子(4)曲率定义为斜率的改变率,描述了边界上各点沿边界方向的变化量。用相邻边界线段(描述为直线)的斜率差作为在边界线交点处的曲率描述子。ak1k2交点a处的曲率为dk=k1–k211.2边界描绘子在一个边界点的曲率的符号描述了边界在该点的凹凸性。如果曲率大于零,则曲线凹向朝着该点法线的正向。如果曲率小于零,则曲线凹向朝着该点法线的负方向。P1P211.2边界描绘子11.2边界描绘子4811.2边界描绘子序号为4、6、8的形状数举例:序号4链码:0321首差:3333形状:3333序号6链码:003221首差:303303形状:033033序号8链码:00032221首差:30033003形状:0033003311.2边界描绘子序号为6的形状数举例:序号6链码:033211首差:330330形状:033033序号6链码:003221首差:303303形状:033033形状数与方向无关11.2边界描绘子序号为8的形状数举例:序号8链码:03032211首差:33133030形状:03033133序号8链码:00332211首差:30303030形状:03030303序号8链码:00323211首差:30331330形状:03033133(3)存在问题虽然链码的首差是不依赖于旋转的,但一般情况下边界的编码依赖于网格的方向。(4)改进措施(规整化网格方向)大多数情况下,将链码网格与基本矩形对齐,即可得到一个唯一的形状数。规整化网格方向的一种算法如下:A、首先确定形状数的序号n;B、在序号为n的矩形形状数中,找出一个与给定形状的基本矩形的离心率最接近的形状数的矩形。11.2边界描绘子C、然后再用这个矩形与基本矩形对齐,构造网格。D、用获得链码的方法得到链码;E、再得到循环首差;F、首差中的最小循环数即为形状数。例如:如果n=12,所有序号为12的矩形(即周长为12)为2*4,3*3,1*5。如果2*4矩形的离心率最接近于给定边界的基本矩形的离心率,我们建立一个2*4的网格。11.2边界描绘子5411.2边界描绘子5511.2边界描绘子3傅里叶描绘子-将一个二维问题简化为一个一维问题(1)基本方法:A、将XY平面中的曲线段转化为复平面上的1个序列,从而用复数的形式来表示给定边界上每个点(x,y)。对1个由N个点组成的封闭边界,从任一点开始绕边界1周就得到1个复数序列:s(k)=x(k)+jy(k)y0y1xx(k)=xky(k)=yk57B、进行离散傅立叶变换N-1a(u)=1/N∑s(k)exp(-j2uk/N)u=0,1,…,N-1u=0系数a(u)被称为边界的傅立叶描述子3傅里叶描绘子-将一个二维问题简化为一个一维问题58C、选取整数MN-1,由a(0),a(1),a(M-1)描述二维封闭边界。这时,对应于边界的点数没有改变,但在重构每一个点所需要的计算项大大减少了。如果边界点数很大,M一般选为2的指数次方的整数。3傅里叶描绘子-将一个二维问题简化为一个一维问题(2)M的选取与描述符的关系在上述方法中,相当于对于uM-1的部分舍去不予计算。由于傅立叶变换中高频部分对应于图像的细节描述,因此M取得越小,细节部分丢失得越多。进行逆傅立叶变换(重构)M-1s’(k)=∑a(u)exp(j2uk/N)k=0,1,…,N-1u=0M=4M=61M=62N=64(3)使用价值A、较少的傅立叶描述子(如4个),就可以获取边界本质的整体轮廓;B、这些带有边界信息的描述子,可以用来区分明显不同的边界。(4)优点A、使用复数作为描述符,对于旋转、平移、放缩等操作和起始点的选取不十分敏感。B、几何变换的描述子可通过对函数作简单变换来获得。几何变换傅立叶描述子原形a(u)旋转a(u)=a(u)ej平移a(u)=a(u)+xy(u)放缩a(u)=a(u)起点a(u)=a(u)e-j2k0u/N4统计矩(1)基本思想:将描述形状的任务减少至描述一个一维函数,边界段和特征的形状可以用矩量来量化地描述。(2)统计矩的定义A、把边界当作直方图函数:g(r)11.2边界描绘子B、矩量的定义:K-1n(r)=∑(ri-m)ng(ri)i=0K-1其中m=∑rig(ri)i=1这里K是边界上点的数目,n(r)是边界的矩量11.2边界描绘子(3)矩量的优点A、实现是直接的;B、附带了一种关于边界形状的“物理”解释C、对于旋转的不敏感性D、为了使大小比例不敏感,可以通过伸缩r的范围来将大小正则化。11.2边界描绘子1一些简单的描绘子(1)区域面积:区域中像素的数目。(2)区域周长:区域边界的长度。11.3区域描绘子(3)致密度:(周长)2/面积。APC2(4)其他简单描绘子如最大值、最小值、中值、均值、重心、方差等。11.3区域描绘子实例:利用面积描绘子从图像中提取信息2拓扑描绘子(1)拓扑性质研究一种图像在没有撕裂和连接的情况下(橡皮伸展变形),不受任何变形影响的性质。(2)孔洞数H、连通分量的数目C、欧拉数EE=C-H11.3区域描绘子(3)拓扑网络与欧拉数的关系V-Q+F=C-H=E(V顶点数、