第6章 基于形态学的图像处理v形态学,一般指生物学中研究动物和植物结构的一个分支数学形态学(也称图像代数),是以形态为基础对图像进行分析的数学工具,其基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的v数学形态学(Mathematical Morphology)诞生于1964年,是由法国巴黎矿业学院博士生赛拉(J. Serra)和导师马瑟荣在从事铁矿核的定量岩石学分析及预测其开采价值的研究中提出“击中/击不中变换”时在理论层面上第一次引入了形态学的表达式,建立了颗粒分析方法他们的工作奠定了这门学科的理论基础, 如击中/击不中变换、开闭运算、布尔模型及纹理分析器的原型等v数学形态学的数学基础和所用语言是集合论,因此它具有完备的数学基础,这为形态学用于图像分析和处理、形态滤波器的特性分析和系统设计奠定了坚实的基础为大量的图像处理问题提供了一种方法数学形态学中的集合表示不同的对象,集合中每个元素的两个分量是像素的坐标,第三个分量对应于像素的离散灰度值v数学形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构数学形态学的算法具有天然的并行实现的结构, 实现了形态学分析和处理算法的并行,大大提高了图像分析和处理的速度。
v数学形态学是由一组形态学的代数运算子组成的,它的基本运算有4个: 膨胀(或扩张)、腐蚀(或侵蚀)、开启和闭合, 它们在二值图像和灰度图像中各有特点基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边缘检测、 图像滤波、图像增强和恢复等v数学形态学方法利用一个称作结构元素的“探针”收集图像的信息,当探针在图像中不断移动时, 便可考察图像各个部分之间的相互关系,从而了解图像的结构特征数学形态学基于探测的思想,与人的视觉特点有类似之处作为探针的结构元素,可直接携带知识(形态、大小、甚至加入灰度和色度信息)来探测、研究图像的结构特点 v一个有效的二值图像处理运算集是从数学形态学下的集合论方法发展起来的尽管它的基本的运算很简单,但它们和它们的推广结合起来可以产生复杂得多的效果并且,它们适合于用相应的硬件构造查找表的方式,实现快速的流水线处理这种方法通常用于二值图像,但也可以扩展到灰度图像的处理v在通常的情况下,形态学图像处理以在图像中移动一个结构元素并进行一种类似于卷积运算的方式进行像卷积核一样,结构元素可以具有任意的大小,也可以包含任意的0与1的组合。
在每个像素位置,结构元素核与在它下面的二值图像之间进行一种特定的逻辑运算逻辑运算的二进制结果存在输出图像中对应于该像素的位置上产生的效果取决于结构元素的大小、内容以及逻辑运算的性质6.1基本概念v(1)元素和集合v在数字图像处理的数学形态学运算中,把一幅图像称为一个集合对于二值图像而言,习惯上认为取值为1的点对应于景物中心,用白色表示,而取值为0的点构成背景,用阴影表示如图6-1所示,对于一幅图像A,如果点a在A的区域以内, 那么就说a是A的元素,记作 ,如果点b不在A的区域以内, 那么就说b不是A的元素,记作 v(2)交集、 并集和补集v图6-2(a)是两个图像集合A和B,A和B的公共点组成的集合称为两个集合的交集, 记为AB,即AB=aaA且aB,如图6-2(b)所示两个集合A和B的所有元素组成的集合称为两个集合的并集,记为AB,即AB=aaA或aB,如图6-2(c)所示对一幅图像A,在图像A区域以外的所有点构成的集合称为A的补集,记为 ,即 ,如图6-2(d)所示交集、并集和补集运算是集合的最基本的运算3)击中与击不中v设有两幅图像A和B,如果AB ,那么称B击中A,记为BA,如图6-3(a)所示;否则,如果AB= ,那么称B击不中A,如图6-3(b)所示,其中 是空集合的符号。
4)平移和反射 v设A是一幅数字图像,如图6-4(a)所示,b是一个点,如图6-4(b)所示,那么定义A被b平移后的结果为Abab| aA,即取出A中的每个点a的坐标值,将其与点b的坐标值相加,得到一个新的点的坐标值a+b,所有这些新点所构成的图像就是A被b平移的结果图像,记为A+b,如图6-4(c)所示v集合的反射 ,定义为 ,即原集合中所有点关于原点对称后的所有点的集合,如图6-4(d)所示5)目标和结构元素 v被处理的图像称为目标图像,一般用大写英文字母表示为了确定目标图像的结构,必须逐个考察图像各部分之间的关系,并且进行检验,最后得到一个各部分之间关系的集合在考察目标图像各部分之间的关系时,需要设计一种收集信息的“探针”,称为“结构元素”结构元素”一般用大写英文字母表示,例如用S表示在图像中不断移动结构元素,就可以考察图像之间各部分的关系一般结构元素的尺寸要明显小于目标图像的尺寸 6.2二值形态学v二值形态学中的运算对象是集合设A为图像集合,B为结构元素,数学形态学运算是用B对A进行运算需要指出,实际上结构元素本身也是一个图像集合对每个结构元素可以指定一个原点,它是结构元素参与形态学运算的参考点。
应注意,原点可以包含在结构元素中,也可以不包含在结构元素中,但运算的结果常不相同二值形态学中两个最基本的运算是膨胀与腐蚀6.2.2膨胀v 简单膨胀是将与某物体接触的所有背景点合并到该物体中的过程过程的结果是使物体的面积增大了相应数量的点如果物体是圆的,它的直径在每次膨胀后增大两个像素如果两个物体在某一点相隔少于三个像素,它们将在该点连通起来合并成一个物体膨胀在填补物体分割后的空洞很有用v 被膨胀定义为 (6-2-1)v 这个公式表示B关于原点对称以后关于某个点平移后与A有交集,所有这些点的集合就是A被B膨胀的结果6.2.1腐蚀v简单的腐蚀是消除物体的所有边缘点的一种过程,其结果使剩下的物体沿其周边比原物体小一个像素的面积如果物体是圆的,它的直径在每次腐蚀后将减少2个像素如果物体任一点的宽度少于三个像素,那么它在该点将变为非连通的(变为两个物体)在任何方向的宽度不大于2个像素的物体将被除去腐蚀在从一幅分割后的图像中去除掉小且无意义的物体时是很有用的v对于一个给定的目标图像X和一个结构元素S, 想象一下将S在图像上移动在每一个当前位置x, S+x只有三种可能的状态:v(1) ; v(2) ; v(3) 与 均不为空。
v图6-6是腐蚀的三种状态图,第一种情形说明S+x与X相关最大,第二种情形说明S+x与X不相关,而第三种情形说明S+x与X只是部分相关X用S腐蚀的结果是所有使S平移后仍在X中的点的集合换句话说,用S来腐蚀X得到的集合是S完全包括在X中时S的原点位置的集合v腐蚀也可以用集合的方式定义,即v (6-2-2)v 腐蚀在数学形态学运算中的作用是消除物体边界点如果结构元素取33的像素块,腐蚀将使物体的边界沿周边减少一个像素腐蚀可以把小于结构元素的物体(毛刺、小凸起)去除,这样选取不同大小的结构元素,就可以在原图像中去掉不同大小的物体如果两个物体之间有细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开,腐蚀运算的示例如图6-7所示v 图6-7(a)中的阴影部分为集合X,图6-7(b)中的中的阴影部分为结构元素S,而图6-7(c)中黑色部分给出了结果由图6-7可知,腐蚀将图像(区域)收缩小了 6.3 开运算和闭运算v 如果结构元素为一个圆盘,那么,膨胀可填充图像中的小孔(比结构元素小的孔洞)及图像边缘处的小凹陷部分,而腐蚀可以消除图像边缘小的成分,并将图像缩小,从而使其补集扩大由图6-8(b)(c)可知,膨胀和腐蚀并不互为逆运算,因此它们可以级连结合使用。
在腐蚀和膨胀两个基本运算的基础上,可以构造出形态学运算族,它由膨胀和腐蚀两个运算的复合与集合运算(并、交、补等)组合成的所有运算构成例如,可先对图像进行腐蚀然后膨胀其结果,或先对图像进行膨胀然后腐蚀其结果(这里使用同一个结构元素)前一种运算称为开运算(或开启),后一种运算称为闭运算(闭合)开运算和闭运算是形态学运算族中两个最为重要的组合运算 6.3.1开运算v 开运算: 先腐蚀后膨胀的过程称为开运算它具有消除细小物体、在纤细点处分离物体、平滑较大物体的边缘时又不明显改变其面积的作用使用结构元素B对集合A进行开运算,定义为:vAoB = (AB) B (6-3-1)v含义:先用B对A腐蚀,然后用B对结果膨胀AoB的边界是B在A的边界内转动时,B中的点所能到达的A的边界的最远点的集合v开运算的几何解释如图6-9所示:6.3.2闭运算v 闭运算: 先膨胀后腐蚀的过程称为闭运算v 它具有填充物体内细小空洞、连接邻近物体、在不明显改变物体面积的情况下平滑其边缘的作用,同样使图像的轮廓变得光滑,但与开运算相反,它能消除狭窄的间断和长细的鸿沟,消除小的孔洞,并填补轮廓线中的裂痕v 使用结构元素B对集合A进行闭运算,定义为:v v 含义:先用B对A膨胀,然后用B对结果腐蚀。
A B的边界是B在A的边界外部转动时,B中的点所能到达的A的边界的最远点的集合闭运算运算的几何解释如图6-10所示6.3.3开运算和闭运算应用举例v 1.边缘提取v 边缘提取定义为:(A)= A(AB) (6-3-3)v 式(6-3-3)表示:先用B对A腐蚀,然后用A减去腐蚀得到的就是A的边缘其中,B是结构元素边缘取结果示意图如图6-11所示:2.区域填充v定义:设所有非边界(背景)点标记为0,则将1赋给p点开始,v (6-3-4)v实现目的:从边界内的一个点开始,用1填充整个区域 ,如果 ,则算法在迭代的第k步结束 和A的并集包含被填充的集合和它的边界如果对式(6-3-4)的左部不加限制,则式(6-3-4)的膨胀将填充整个区域利用 的交集将结果限制在感兴趣区域内,实现条件膨胀形态学区域填充因为球内部的暗点不是真实的,而是反射所产生的效果,我们的目的就是通过区域填充消除反射v区域填充示意图如图6-12所示从图6-12可以看出,通过区域填充可以消除白色圆圈内的黑点6.4 腐蚀和膨胀的变体v 6.4.1 细化v 细化是形态学的一个主要应用一幅图像的“骨架”,是指图像中央的骨骼部分,是描述图像几何及拓扑性质的重要特征之一。
求一幅图像骨架的过程就是对图像进行“细化”的过程在文字识别、地质构造识别、工业零件形状识别和图像理解中,先对被处理的图像进行细化有助于突出形状特点和减少冗余信息量 v 在细化一幅图像X时应满足两个条件:第一,在细化的过程中,X应该有规律地缩小; 第二,在X逐步缩小的过程中,应当使X的连通性质保持不变下面介绍一个具体的细化算法v 设已知目标点标记为1,背景点标记为0边界点是指本身标记为1而其8连通邻域中至少有一个标记为0的点算法对一幅图像的所有边界点都进行如下检验和运算:v(1)考虑以边界点为中心的8邻域,设 为中心点,对其邻域的8个点逆时针绕中心点分别标记为 , , ,其中 位于 的上方如果 (即白点)时,下面4个条件同时满足,则删除 (令 =0): v ,其中 是 的零邻点的个数; v ,其中 是以 ,为序时这些点的值从0到1变化的次数; v 或者 ; v 或者 v (2) 同第(1)步,仅将中的条件改为 ,中的条件改为 同样当对所有边界点都检验完毕后,将所有满足条件的点删除v 以上两步运算构成一次迭代算法反复迭代,直至没有点再满足标记删除的条件,这时剩下的点就组成区域的骨架,图6-13给出了这一算法的应用示例。
6.4.2 剪枝和粗化v剪枝(Pruning)v通常,细化和抽骨架过程会在所生成的图中留下毛刺毛刺是由边界上单像素尺寸的起伏造成的,这些起伏产生了小的分支,每个分支在距分叉3个像素左右处有一个端点我们可通过一系列的消除端点的33运算(导致所有的分支缩短),来消除掉一些细小的分支,然后再重建那些留下的分支。