《数字图像处理及matlab实现.ppt》由会员分享,可在线阅读,更多相关《数字图像处理及matlab实现.ppt(70页珍藏版)》请在三一办公上搜索。
1、第八章 图像分割,Contents,8.1 图像分割定义,8.2 使用阈值进行图像分割,8.3基于梯度的图像分割方法,8.4 边缘检测和连接,Contents,8.5 区域增长(Region Growing),8.6 二值图像处理(Binary Image Processing),8.7 分割图像的结构,小结,8.1 图像分割定义,图像分割处理定义:将数字图像划分成互不相交(不重叠)区域的过程.区域(region)定义:像素的连通集。连通(connectedness)定义:在一个连通集中的任意两个像素之间,存住一条完全由这个集合的元素构成的连通路径。,8.2.1 全局阈值化,思想:整个图像中将
2、灰度阈值的值设置为常数。前提条件:如果背景的灰度值在整个图像中可合理地看作为恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用一个固定的全局阈值一般会有较好的效果。,8.2.2 自适应阈值,改进方法:在许多的情况下,背景的灰度值并不是常数,物件和背景的对比度在图像中也有变化,这时,一个在图像中某一区域效果良好的阈值在其它区域却可能效果很差。在这种情况下,把灰度阈值取成一个随图像中位置缓慢变化的函数值是适宜的。,最佳阈值的选择,除非图像中的物体有陡峭的边沿,否则灰度阈值的取值对所抽取物体的边界的定位和整体的尺寸有很大的影响。这意味着后续的尺寸(特别是面积)的测量对于
3、灰度阈值的选择很敏感。由于这个原因,我们需要一个最佳的,或至少是具有一致性的方法确定阈值。,1.直方图技术,含有一个与背景明显对比的物体的图像其有包含双峰的灰度直方图,直方图生成a=imread(d:pici_boat_gray.bmp);imshow(a)figure imhist(a)利用灰度阈值T对物体面积进行计算的定义是:,2.最大类间方差法(OTSU),OTSU算法定义:该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。,OTSU基本原理:以最佳阈值将图像的灰度直方图分割成两部分,是两部分之间的方差取最大值,即分离性最大。,3.迭代法求阈值,原理:
4、图像中前景与背景之间的灰度分布为相互不重叠,在该前提下,实现对两类对象的阈值分割方法。,8.3基于梯度的图像分割方法,思路对比:区域分割方法:通过将图像划分为内部点集和外部点集来实现分割。边界方法:利用边界具有高梯度值的性质直接把边界找出来。,边界跟踪,算法步骤1:我们从一个梯度幅值图像着手进行处理,这个图像是从一幅处于和物体具有反差的 背景中的单一物体的图像进行计算得来的。2:搜索以边界起始点为中心的33邻域,找 出具有最大灰度级的邻域点作为第2个边界点。,梯度图像二值化,如果用适中的阈值对一幅梯度图像进行二值化,Kirsch的分割法利用了这种现象。算法步骤用一个中偏低的灰度阈值对梯度图像进
5、行二值化从而检测出物体和背景,物体与背景被处于阈值之上的边界点带分开。随着阈值逐渐提高,就引起物体和背景的同时增长。当它们接触上而又不至于合并时,可用接触点来定义边界。这是分水岭算法在梯度图像中的应用。,Kirsch的分割算法,拉普拉斯边缘检测,拉普拉斯算于是对二维函数进行运算的二阶导数标量算子。它定义为:,一个无噪声图像具有陡峭的边缘,可用拉普拉斯算子将它们找出来。对经拉普拉斯算子滤波后的图像用零灰度值进行二值化会产生闭合的、连通的轮廓并消除了所有的内部点。但是由于噪声的存在,在运用拉普拉斯算子之前需要先进行低通滤波。,选用高斯低通滤波器进行预先平滑是很合适的。由卷积的结合律可以将拉普拉斯算
6、子和高斯脉冲响应组合成一个单一的高斯拉普拉斯核:这个脉冲响应对x和y是可分离的,因此可以有效地加以实现。,8.4 边缘检测和连接,边缘点:确定图像中的物体边界的另一种方法是 先检测每个像素和其直接邻域的状态,以决定该像素是否确实处于一个物体的 边界上。具有所需特性的像素被标为边 缘点。边缘图像:当图像中各个像素的灰度级用来反映各 像素符合边缘像素要求的程度时,这种 图像被称为边缘图像。,边缘检测,边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。有若干种方法可以使用,其中大多数是基于方向导数掩模求卷积的方法。,Roherts边缘算子,其中,f(x,y)是具有整数像素坐
7、标的输入图像。其中的平方根运算使该处理类似于人类视觉系统中发生的过程。,Sobel边缘算子,两个卷积核形成了Sobel边缘算子。图像中的每个点都用这两个核做卷积。一个核对通常的垂直边缘响应最大而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出值。运算结果是一幅边缘幅度图像。,Sobel边缘算子图,Prewitt边缘算子,Prewitr边缘算子,Kirsch边缘算子,图像中的每个点均与这8个模板进行卷积,每个掩模对某个特定边缘方向作出最大响应。所有8个方向中的最大值作为边缘幅度图像的输出。最大响应掩模的序号构成了对边缘方向的编码。Kirsch算子的梯度幅度值,Kirsch边缘算子,Kir
8、sch边缘算子,边缘检测器性能:使用两个掩模板组成边缘检测 器时,通常取较大得幅度作为输出值。这使 得它们对边缘的走向有些敏感。取它们的 平方和的开方可以获得性能更致的全方位 响应。这与真实的梯度值更接近。,边缘提取方法原图,边缘提取方法边缘提取后,边缘连接,问题:如果边缘很明显,而且噪声级低,那么可以将边缘图像二值化并将其细化为单像素宽的闭合连通边界图。然而在非理想条件下,这种边缘图像会有间隙出现,需要加以填充。,填充小的间隙可以简单地实现,通过搜索一个以某端点为中心的55或更大的邻域,在邻域中找出其它端点并填充上必要的边界像素,从而将它们连接起来。对具有许多边缘点的复杂场景,这种方法可能会
9、对图像过度分割。为了避免过度的分割,可以规定:两个端点只有在边缘强度和走向相近的情况下才能连接。,解决方法,启发式搜索曲线拟合Hough变换,(1)启发式搜索,假定在一幅边缘图像的某条边界上有一个像间隙的缺口,但是这 个缺口太长而不能仅用一条直线填充,它还可能不是同一条边界 上的缺口,可能在两条边界上。作为质量的度量,我们可以建立 一个可以在任意连接两端点(称为 A,B)的路径上进行计算的函数。,如果边缘质量函数很复杂而且要评价的缺口既多又长,启发式搜索技术的计算会很复杂。这样的技术在相对简单的图像中性能很好,但不一定能找出两端点间的全局最佳路径。,(2)曲线拟合,假定有一组散布在两个特定边缘
10、点A和B之间的边缘点,我们希望从中选取一个子集作为从A到B一条分段线性路径上的结点集。首先:从A到B引一条直线。其次:接着计算其它的每个边缘点到该直线的垂直距离。,(3)Hough变换,直线y=mx+b可用极坐标表示为 其中定义了一个从原点到线上最近点的向量。这个向量与该直线垂直。,如果有一组位于由参数确定的直线上的边缘点,则每个边缘点对应了空间的一条正弦型曲线。所有这些曲线必交于点,因为这是它们共享的一条直线的参数。建立一个在空间的二维直方图。对每个边缘点,我们将给所有与该点的Hough变换(正弦曲线)对应的空间的直方图方格一个增量。当对所有边缘点施行完这种操作后,包含的方格将具有局部最大值
11、。然后对空间的直方图进行局部最大值搜索可以获得边界线段的参数。,hough直线检测结果,原图 直线检测结果,8.5 区域增长,方法:从把一幅图像分成许多小区域开始的。这 些初始的区域可能是小的邻域甚至是单个 像素。在每个区域中,对经过适当定义的 能反映一个物体内成员隶属程度的性质(度量)进行计算。用于区分不同物体内像 素的性质(度量)包括平均灰度值,纹 理,或颜色信息。,区域增长算法主要分成两类,(1)简单连接 这是基于单个像素的区域增长法,它从满足的 检测的点(连接核)开始,考察其周围(4邻域或8邻域)的不属于任何一个区域的点,如果其特性符合接收准则,就把它作为同一个区域加以合并,形成连接核
12、,继而检测周围的点,并把符合接入准则的点并入,产生新的核。重复上述过程,直到没有可并入的点时,生产过程结束。,(2)子区合并法 合并过程:首先:将图像分割成个,大小为的小区域(简 称子区)。其次:从左上角第一个子区开始,分别计算子 区和相邻子区的灰度统计量,然后做相 似性判定。若两者的灰度分布相似且符 合接收准则。相邻子区并入当前子区,形成下一轮判定合并时的当前子区。,如果某个相邻子区不符合接收准则,就打上“未分割标记”。继续新一轮判定,使当前子区不断“生长”,知道没有可归并的子区为止,一个区域分割完毕。最后:搜索图像全域,对凡具有“未分割标记”的子区重复上述步骤。,相似性判定准则一般是:,8
13、.6 二值图像处理,二值图像也就是只具有两个灰度级的图像,它是数字图像的一个重要子集。一个二值图像(例如,一个剪影像或一个轮廓图)通常是由一个图像分割操作产生的。如果初始的分割不够令人满意,对二值图像的某些形式的处理通常能提高其质量。,形态学图像处理,术语,1.集合论术语(Definition)形态学处理语言中,二值图像B和结构元素S都是定义在二维笛卡儿网格上的集 合,“1”是这些集合中的元素。当一个结构元素的原点位移到点(x,y)处时,我们将其记作。形态学运算的输出是另一个集合,这个运算可用一个集合论方程来确定。,2.腐蚀和膨胀(Dilation and Erosion),(1)腐蚀,一般意
14、义的腐蚀概念定义为:E=B S=x,y|B 如果S的原点位移到点(x,y),那么S将完全包含于B中。使用基本的33结构元素时,一般意义的腐蚀简化为简单腐蚀。,(2)膨胀,一般膨胀定义为:E=B S=x,y|B S对B膨胀产生的二值图像D是由这样的点(x,y)组成的集合,如果S的原点位移到(x,y),那么它与B的交集非空。采用基本的33结构造元素时,一般膨胀简化为简单膨胀。,开运算和闭运算,开运算:先腐蚀后膨胀的过程称为开运算。它具有消除细小物体、在纤细点处分离物体、和平滑较大物体的边界时又不明显改变其面积的作用。开运算定义为:,闭运算:先膨胀后腐蚀的过程称为闭运算。它具有填充物体内细小空洞、连
15、接邻近物体、在不明显改变物体面积的情况下平滑其边界的作用。闭运算定义为:,腐蚀和膨胀的变体,通常反复施以腐蚀运算,将使一个物体变得不存在。类似地,反复膨胀将把一幅图像中的所有物体合并为一个。然而,这些过程可以改变一下,以便在一些应用中产生更合适的结果。,(1)收缩,定义:当腐蚀以一种不触及单像素物件的方式执行时,这个过程称为收缩。收缩可以迭代方式为一个包含近似圆形物体的二值图像生成物体尺寸的分布。收缩时会使非常不圆的物体(如哑铃状的物体)分解,因此这种技术存它的局限性。,(2)细化,定义:将一个曲线形物体细化为一条单像素宽的 线,从而图形化地显示出其拓扑性质。腐蚀可编程过程:第一步:足一个正常
16、的腐蚀。第二步:只将那些消除后并不破坏连通性的点消 除,否则保留。,(3)抽骨架,定义:一个与细化有关的运算,也称为中轴变 换(Medialaxis transform)或焚烧草地 技术(grass-fire technigue)。抽骨架的实现与细化相似可采用一个两步有条件腐蚀实现,但是删除像素的规则略有不同。,(4)剪裁,细化和抽骨架过程会在所生成的阿中留下毛刺。毛刺是由边界上单像素尺寸的起伏造成的,这些起伏产生了小的分支。它们可通进一系列的消除端点的33运算(导致所有的分支缩短)除去,然后再重建那些留下的分支。,(5)粗化,一些分割技术倾向于用紧贴的边界拟台物体以避免错误地合并它们。通常孤
17、立物体的最佳边界太紧贴并不利于后续测量。粗化可在不合并彼此分离的物体的前提下扩大边界,从而修正了这种不足。,原图 腐蚀,膨胀 开操作,闭操作,8.7 分割图像的结构,希望制作一幅新图像,以显示物体是如何调整的,或者用单独的图像显示每个物体。甚至还可能希望对单个物体逐个地进行进一步的测量或其它处理。在这些情况下,就需要抽取并以更方便的形式存储各个物体。通常,每个物体在被检测时都应该标以一个序号。这个物体编号可用来识别和跟踪景物中的物体。在这一节,我们讨论三种对分割图像进行结构化的方法。,分水岭算法,分水岭算法,分水岭算法不是简单地将图像在最佳灰度级进行阈值处理,而是从一个偏低但仍然能正确分割各个
18、物体的阈值开始。然后随着阈值逐渐上升到最佳值,使各个物体不会被合并。这个方法可以解决那些由于物体靠得太近而不能用全局阈值解决的问题。如果初始的阈值太低,那么低对比度的物体开始时会被丢失,然后随着阈值的增加就会和相邻的物体合并。如果初始阈值太高,物体一开始便会被合并。最终的阈值决定了最后的边界与实际物体的吻合程度。,分水岭方法和距离变换方法分割相互连接图像,二进制图像 距离变换方法 分水岭方法,8.7.2 物体隶属关系图,在物体隶属关系图中,每个像素的灰度级按其在原始图像中所对应的像素所属的物体序号进行编码。隶属关系图技术通用性很强,但它不是一种对保存分割信息特别紧凑的方法。它需要一幅附加的全尺
19、寸的数字图像来描述甚至只包含一个小物体的场景。如果仅对物体的大小和形状感兴趣,分割后可舍弃原始图像。如果仅有一个物体或物体不需要区分,还可以进一步减少数据量。,边界链码,链码是从在物体边界上任意选取的某个起始点的(x,y)坐标开始的。这个起始点有8个邻接点,其中至少有一个是边界点。边界链码规定了从当前边界点走到下一个边界点这一步骤必须采用的方向。生成边界链码时,由于必须在整幅图像中跟踪边界,所叫常常需要对输入图像进行随机存取。采用图像分割中的边界跟踪技术时,链码的生成是一个自然的副产品。采用二值方法确定边界时,链码的生成不适于对存储在磁盘上的图像进行逐行处置。,小结(Chapter Summary),图像分割是一个将一幅数字图像划分为不交叠的、连通的像素集的过程,其中一个对应于背景,其它的则对应于图像中的各个物体。利用为物体指定其像差或找出物体之间(或物体和背景之间)边界的方法来实现图像分割;在图像分割之间进行背景平滑和噪声消除,常常能改善分割时的性能。图像分割中采用自适应阈值方法较采用直方图分割具有较好的分割效果。针对较为复杂的图像我们则可以采用区域分割技术来实现,针对图像分割结果我们则可以通过采用隶属关系图,边界链码,或线段编码来存储。,Thank You!,