1DigitalImageProcessing数字图像处理@myao99.51.net姚敏2第九章图像分割39.1概述4图像分割图像图像识别图像预处理图像理解图9.1图像分割在整个图像处理过程中的作用图像分割作用5分割出来的各区域对某种性质例如灰度,纹理而言具有相似性,区域内部是连通的的且没有过多小孔。区域边界是明确的相邻区域对分割所依据的性质有明显的差异图像分割特征6边缘检测边缘跟踪阈值分割区域分割运动分割图像分割本章要点79.2边缘检测8梯度算子梯度算子是一阶导数算子(,)xyfGxfxyfGy1222()()xymagfGG幅值方向角)arctan(),(xyGGyx9梯度算子1||||xyMGG222xyMGG(,)xyMMaxGG数字图像处理中用差分代替微分近似计算10梯度算子Roberts算子9586xyGZZGZZZ1Z2Z3Z4Z5Z6Z7Z8Z9-10010-11011梯度算子Sobel算子789123369147(2)(2)(2)(2)xyGZZZZZZGZZZZZZZ1Z2Z3Z4Z5Z6Z7Z8Z9-1-2-1000121-101-202-10112梯度算子Prewitt算子Z1Z2Z3Z4Z5Z6Z7Z8Z9)()()()(741963321987ZZZZZZGZZZZZZGyx-1-1-1000111-101-101-10113梯度算子原图Prewitt算子Sobel算子Roberts算子14拉普拉斯算子22222(,)(,)(,)fxyfxyfxyxy2(,)(1,)(1,)(,1)(,1)4(,)fxyfxyfxyfxyfxyfxy差分微分二阶导数算子15拉普拉斯算子图9.5两种常用的拉普拉斯算子模板0101-410101111-8111116拉普拉斯算子17Canny算子好的检测结果:对边缘的错误检测率要尽可能低,在检测出图像真实的边缘的同时要避免检测出现虚假的边缘。好的边缘定位精度:标记出的边缘位置要和图像上真正边缘的位置尽量接近。对同一边缘要有低的响应次数:有的算子会对一个边缘回产生多个响应。也就是说图像上本来只有一个边缘点的,可是检测出来就会出现多个边缘点。克服噪声的影响基本思想18Canny算子算法步骤用高斯滤波器平滑图像计算滤波后图像梯度的幅值和方向对梯度幅值应用非极大值抑制,其过程为找处图像梯度中的局部极大值点,把其它非局部极大值点置零以得到得到细化的边缘用双阈值算法检测和连接边缘,使用两个阈值T1和T2(T1T2),T1用来找到每条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。19Canny算子实例20算子比较Roberts算子:Roberts算子利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备能抑制噪声能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。Sobel算子和Prewitt算子:都是对图像先做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。21算子比较Laplacian算子:是不依赖于边缘方向的二阶微分算子算子,对图像中的阶跃型边缘点定位准确,该算子对噪声非常敏感,它使噪声成分得到加强,这两个特性使得该算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘,同时抗噪声能力比较差。22算子比较LOG算子:该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian算子检测边缘,因此克服了Laplacian算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法检被测到。应用LOG算子,高斯函数中方差参数的选择很关键,对图像边缘检测效果有很大的影响。高斯滤波器为低通滤波器,越大,通频带越窄,对较高频率的噪声的抑制作用越大,避免了虚假边缘的检出,同时信号的边缘也被平滑了,造成某些边缘点的丢失。反之,越小,通频带越宽,可以检测到的图像更高频率的细节,但对噪声的抑制能力相对下降,容易出现虚假边缘。因此,应用LOG算子,为取得更佳的效果,对于不同图像应选择不同参数。23算子比较Canny算子:Canny算子虽然是基于最优化思想推导出的边缘检测算子,实际效果并不一定最优,原因在于理论和实际有许多不一致的地方。该算子同样采用高斯函数对图像作平滑处理,因此具有较强的抑制噪声能力,同样该算子也会将一些高频边缘平滑掉,造成边缘丢失。Canny算子其后所采用用双阈值算法检测和连接边缘,采用的多尺度检测和方向性搜索较LOG算子要好。249.3边缘跟踪25基本步骤从图像中一个边缘点出发,然后根据某种判别准则搜索下一个边缘点以此跟踪出目标边界。确定边界的起始搜索点,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。确定合适边界判别准则和搜索准则,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下一个边缘点。确定搜索的终止条件。26二值图像边界跟踪27灰度图像边界跟踪28Hough变换Hough变换可以用于将边缘像素连接起来得到边界曲线优点在于受噪声和曲线间断的影响较小在已知曲线形状的条件下,Hough变换实际上是利用分散的边缘点进行曲线逼近,它也可看成是一种聚类分析技术29Hough变换原始图像二值化图像细化图像Hough变换检测出的直线直线检测309.4阈值分割31基本原理原始图像——f(x,y)灰度阈值——T阈值运算得二值图像——g(x,y)1[,][,]0[,]fxyTgxyfxyT如果如果阈值选择直接影响分割效果,通常可以通过对灰度直方图的分析来确定它的值。32阈值选择利用灰度直方图求双峰或多峰选择两峰之间的谷底作为阈值33人工阈值人工选择法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选出合适的阈值。也可以在人工选出阈值后,根据分割效果,不断的交互操作,从而选择出最佳的阈值。34T=155的二值化图像T=210的二值化图像原始图像图像直方图人工阈值35自动阈值迭代法基本思想:开始时选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略,好的阈值的改进策略应该具备两个特征,一是能够快速收敛,二是在每一个迭代过程中,新产生阈值优于上一次的阈值。36自动阈值迭代法(1)选择图像灰度的中值作为初始阈值Ti=T0。(2)利用阈值Ti把图像分割成两部分区域,R1和R2,并计算其灰度均值101210,iiiiLTiiiTiTLiiiTiininuunn1121()2iT(3)计算新的阈值Ti+1(4)重复步骤2、3,直到Ti+1和Ti的值差别小于某个给定值37自动阈值迭代法原始图像迭代阈值二值化图象图9.20迭代式阈值二值化图像38自动阈值Ostu法Ostu方法是使类间方差最大而推导出的一种能自动确定阈值的方法具有简单,处理速度快的特点Matlab工具箱提供的graythresh函数求取阈值采用的正是Ostu法39自动阈值Ostu法原始图像Otsu法二值化图象图9.21Otsu法二值化图像40自动阈值分水岭算法分水岭算法(watershed)是一种借鉴了形态学理论的分割方法,它将一幅图象看成为一个拓扑地形图,其中灰度值被认为是地形高度值。高灰度值对应着山峰,低灰度值处对应着山谷。将水从任一处流下,它会朝地势底的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为吸水盆地,最终所有的水会分聚在不同的吸水盆地,吸水盆地之间的山脊被称为分水岭,水从分水岭流下时,它朝不同的吸水盆地流去的可能性是相等的。将这种想法应用于图像分割,就是要在灰度图像中找出不同的吸水盆地和分水岭,由这些不同的吸引盆地和分水岭组成的区域即为我们要分割的目标。41自动阈值分水岭算法(a)原始图像(b)图像对应的拓扑地形图图9.23图像对应的拓扑表面图42自动阈值分水岭算法分水岭阈值选择算法可以看成是一种自适应的多阈值分割算法图9.24分水岭形成示意图分水岭对应于原始图像中的边缘43自动阈值分水岭算法L=watershed(f)MATLAB函数图9.25不准确标记分水岭算法导致过分割原始图像分水岭分割结果局部极小值44自动阈值改进的分水岭算法图9.26准确标记的分水岭算法分割过程原始图像原图像的距离变换标记外部约束标记内部约束由标记内外部约束重构的梯度图分割结果459.5区域分割46基本思想阈值分割法由于没有或很少考虑空间关系,使多阈值选择受到限制于区域的分割方法可以弥补这点不足,它利用的是图像的空间性质,该方法认为分割出来的属于同一区域的像素应具有相似的性质,其概念是相当直观的。传统的区域分割算法有区域增长法和区域分裂合并法。该类方法在没有先验知识可以利用时,对含有复杂场景或自然景物等先验知识不足的图像进行分割,也可以取得较好的性能。但是,空间和时间开销都比较大。47区域生长区域生长法主要考虑象素及其空间邻域象素之间的关系开始时确定一个或多个象素点作为种子,然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的象素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区域为止。区域内象素的相似性度量可以包括平均灰度值、纹理、颜色等信息。48区域生长选择合适的种子点确定相似性准则(生长准则)确定生长停止条件步骤49区域生长实例图9.29区域生长原始图像及种子点位置三个种子点区域生长结果原始图像及种子点位置四个种子点区域生长结果50区域分裂条件:如果区域的某些特性不满足一致性准则开始:从图像的最大区域开始,一般情况下,是从整幅图像开始注意:确定分裂准则(一致性准则)确定分裂方法,即如何分裂区域,使得分裂后的子区域的特性尽可能都满足一致性准则值。51区域分裂算法形成初始区域对图像的每一个区域Ri,计算P(Ri),如果P(Ri)=FALSE则沿着某一合适的边界分裂区域重复步骤2,当没有区域需分裂时,算法结束。52区域合并合并运算就是把相邻的具有相似性质的区域合成为一个区域合并算法中最重要的运算是确定两个区域的相似性评判区域相似性方法有许多,评判相似性的方法可以基于区域的灰度值,也可以基于区域边界的强弱性等因素。一种简单的方法是比较它们的灰度均值基本思想53区域合并使用某种方法进行图像的初始区域分割。对于图像中乡邻个区域,计算是否满足一致性谓词词,若满足则合并为一个区域。重复步骤2,直到没有区域可以合并,算法结束。算法54区域分裂合并数据结构55区域分裂合并数据结构图9.31图像分裂示例56区域分裂合并算法设整幅图像为初始区域对每一区域R,如果P(R)=FLASE,则把该区域分裂成四个子区域重复上一步,直到没有区域可以分裂对图像中任意两个相邻的R1和R2,如果P(R1UR2)=TRUE,则把这两个区域合并成一个区域。重复上一步,直到没有相邻区域可以合并,算法结束57区域分裂合并实例原始图像分裂最小子区域大小1616分裂最小子区域大小88分裂最小子区域大小88图9.32图像分裂合并