1、3.图像处理与分析分割分割预处理预处理问题图像获取图像获取低级处理表示与描述表示与描述中级处理知识库知识库识别识别与与解释解释高级处理结果13.1图像分割图像分割特征特征图像分割是指将一幅图像分解为若干互不交叠的、有意义图像分割是指将一幅图像分解为若干互不交叠的、有意义的、具有相同性质的区域。的、具有相同性质的区域。?分割出来的各区域对某种性质例如灰度,纹理而言具有相似性,区域内部是连通的且没有过多小孔;?区域边界是明确的;?相邻区域对分割所依据的性质有明显的差异。不同的分割算法总是在不同的约束之间寻找一种合理的平衡.23.1图像分割图像分割特征特征图像分割算法一般是基于亮度值的两个基本特性之
2、一图像分割算法一般是基于亮度值的两个基本特性之一:不连不连续性续性和和相似性相似性.?第1类性质的应用途径是基于亮度的不连续变化分割图像,比如图像的边缘.?第2类的主要应用途径是依据事先制定的准则将图像分割为相似的区域.门限(阈值)处理、区域生长、区域分离和聚合都是这类方法的实例。33.1图像分割图像分割本章要点本章要点?3.1.1 间隔检测?3.1.2 边缘连接和边界检测?3.1.3 门限处理(阈值分割)?3.1.4 区域分割43.1.1.间隔检测间隔检测?1.点检测?2.线检测?3.边缘检测5间隔检测的通用方法:使用一个模板对整幅图像进行检测。R?w1z1?w2z2?L?w9z99?wiz
3、ii?11个33的模板61.点检测点检测孤立点的检测使用右图模板,若|R|?T则在模板中心的位置已经检测到一个孤立点.T为非负门限图 点检测模板如果一个孤立的点与它周围的点很不同,则很容易被这类模板检测到.72.线检测线检测水平垂直图 线检测模板第第12个模板对水平方向个模板对+45度方向线有最佳响应(一个像素宽度)的线条有很强的响应.82.线检测线检测令R1,R2,R3,R4分别表示图10.3 中模板的响应,如果|Ri|Rj|,则此点被认为与在模板i方向上的线更相关.若要检测特定方向上的线模板的输出门限.,应使用与这一方向有关的模板,并设置该93.边缘检测边缘检测当人看一个有边缘的物体时,首
4、先感觉到的便是边缘.在边缘处,灰度和结构等信息的产生突变.边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像.由于图像数据是二维的,而实际物体是三维的,从三维到二维的投影必然会造成信息的丢失,再加上成像过程中光照的不均和噪声等因素的影响,使得有边缘的地方不一定能被检测出来,而检测出来的边缘也不一定代表实际边缘.图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈.边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘.103.边缘检测边缘检测理想数字边缘模型斜坡数字边缘模型水平线通过图像的灰度剖面图水平线通过图像的灰度剖面图斜坡部分
5、与边缘的模糊程度成正比.113.边缘检测边缘检测灰度剖面图一阶导数可以用于检测图像中的一个点是否一阶导数在斜坡上二阶导数的符号可以用于判断一个边缘像素.是在边缘亮的一边还是暗的一边(1).(2)对图像中的每条边缘二阶导数生成两个值二阶导数直线将在边缘中点附近穿过零点一条连接二阶导数正极值和负极值的虚构于确定粗边线的中心.据此可以用123.边缘检测边缘检测基于一阶导数的边缘检测算子包括Prewitt像素点做卷积和运算算子等.通过2,然后选取合适的阈值以提取边缘2或者33的模板作为核与图像中的每个Roberts算子、Sobel算子、.拉普拉斯边缘检测算子是基于二阶导数的边缘检测算子感,边缘检测算子
6、,一种改进方式是先对图像进行平滑处理对噪声敏.,然后再应用二阶导数的图像边缘对应一阶导数的极大值点和二阶导数的过零点。133.边缘检测边缘检测梯度算子是一阶导数算子一阶导数算子?f?f(x,y)?Gx?x?G?y?f?y?幅值幅值mag(f)?(G221x?Gy)2?方向角方向角?(x,y)?arctan(GyG)x141)梯度算子梯度算子近似计算近似计算?M1?|Gx|?|Gy|?M2?G22x?Gy?M?Max(Gx,Gy)?数字图像处理中用差分代替微分151)梯度算子梯度算子Roberts算子算子Z1Z2Z3Z4Z5Z6-100-1Z7Z8Z90110Gx?Z9?Z5Gy?Z8?Z616
7、1)梯度算子梯度算子Z1Z2Z3-1-1-1000-1Prewitt算子算子01Z4Z5Z6Z7Z8Z9-1-10011111Gx?(Z7?Z8?Z9)?(Z1?Z2?Z3)Gy?(Z3?Z6?Z9)?(Z1?Z4?Z7)171)梯度算子梯度算子Z1Z2Z3-1-2-1000121Sobel算子算子-1-2-1000121Z4Z5Z6Z7Z8Z9Gx?(Z7?2Z8?Z9)?(Z1?2Z2?Z3)Gy?(Z3?2Z6?Z9)?(Z1?2Z4?Z7)181)梯度算子梯度算子0-110110Prewitt-1-10-10011102219-1-10-110-21-2-1-10Sobel 用于检测对
8、角边缘的Prewitt算子和Sobel算子01-2-101)梯度算子梯度算子原图原图Roberts算子算子Sobel算子算子Prewitt算子算子202)2)拉普拉斯算子拉普拉斯算子二阶导数算子二阶导数算子?f(x,y)?f(x,y)?f(x,y)?22?x?y222微分差分?f(x,y)?f(x?1,y)?f(x?1,y)?f(x,y?1)?f(x,y?1)?4f(x,y)2212)2)拉普拉斯算子拉普拉斯算子0101111-411-81010111图图 两种常用的拉普拉斯算子模板两种常用的拉普拉斯算子模板222)2)拉普拉斯算子拉普拉斯算子拉普拉斯算子一般不以其原始形式用于边缘检测拉普拉斯
9、算子一般不以其原始形式用于边缘检测,这是因为:这是因为:(1)作为一个二阶导数作为一个二阶导数,拉普拉斯算子对噪声具有无法接受的敏感性拉普拉斯算子对噪声具有无法接受的敏感性;(2)拉普拉斯算子的幅值产生双边缘拉普拉斯算子的幅值产生双边缘,这是复杂的分割不希望有的结果这是复杂的分割不希望有的结果;(3)拉普拉斯算子不能检测边缘的方向拉普拉斯算子不能检测边缘的方向.拉普拉斯算子在分割中所起的作用包括拉普拉斯算子在分割中所起的作用包括:(1)利用它的零交叉的性质进行边缘定位利用它的零交叉的性质进行边缘定位;(2)确定一个像素是在边缘暗的一边还是亮的一边确定一个像素是在边缘暗的一边还是亮的一边.23噪
10、声对边缘检噪声对边缘检测的影响测的影响?0.0?0.1?1.0?10243)3)高斯拉普拉斯算子高斯拉普拉斯算子考虑函数考虑函数:h(r)?e?r22?2模糊图像r?x?y,?为标准差222h的拉普拉斯算子的拉普拉斯算子(h关于关于r的二阶导数的二阶导数):?2?r?22?h(r)?e?4?22r2高斯型的拉普拉斯算子(LoG)用该函数对图像进行平滑滤波,然后再应用拉普拉斯算子.253)3)高斯高斯-拉普拉斯算子拉普拉斯算子高斯型拉普拉斯算子三维曲线图像横截面55的模板263)3)高斯高斯-拉普拉斯算子拉普拉斯算子274)算子比较算子比较?Roberts算子算子:Roberts算子利用局部差分
11、算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声的能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。?Sobel算子算子和Prewitt算子算子:都是对图像先做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。284)算子比较算子比较?Laplacian算子算子:是不依赖于边缘方向的二阶微分算子算子,对图像中的阶跃型边缘点定位准确,该算子对噪声非常敏感,它使噪声成分得到加强,这两个特性使得该
12、算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘,同时抗噪声能力比较差。294)算子比较算子比较?LOG算子算子:该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian算子检测边缘,因此克服了 Laplacian算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法检被测到。应用LOG算子,高斯函数中方差参数的选择很关键,对图像边缘检测效果有很大的影响。高斯滤波器为低通滤波器,越大,通频带越窄,对较高频率的噪声的抑制作用越大,避免了虚假边缘的检出,同时信号的边缘也被平滑了,造成某些边缘点的丢失。反之,越小,通频带越
13、宽,可以检测到的图像更高频率的细节,但对噪声的抑制能力相对下降,容易出现虚假边缘。因此,应用 LOG算子,为取得更佳的效果,对于不同图像应选择不同参数。303.1.2.边缘连接和边界检测边缘连接和边界检测利用前面的方法检测出边缘点,但由于噪声、光照不均等因素的影响,获得边缘点有可能是不连续的,必须使用连接过程将边缘像素组合成有意义的边缘信息,以备后续处理。311.局部处理局部处理分析图像中每个点(x,y)的一个小领域,根据梯度确定边缘像素的相似性。如果满足:|?f(x,y)?f(x0,y0)|?E|?(x,y)?(x0,y0)|?A如果大小和方向准则得到满足,则在前面定义的(x,y)邻域中的点
14、就与位于(x,y)的像素连接起来.322.基本步骤基本步骤从图像中一个边缘点出发,然后根据某种判别准则搜索下从图像中一个边缘点出发,然后根据某种判别准则搜索下一个边缘点以此跟踪出目标边界。一个边缘点以此跟踪出目标边界。?确定边界的起始搜索点,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。?确定合适边界判别准则和搜索准则,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下一个边缘点。?确定搜索的终止条件。33灰度图像边界跟踪灰度图像边界跟踪34Hough 变换变换通过霍夫变换进行整体处理通过霍夫变换进行整体处理在图像上给出n个点,我们希望找到这些点中位于直线上的点组
15、成的子集.一种可行的方法就是先寻找所有由每对点确定的直线,然后找到所有接近特定直线的点组成的子集.HoughHough变换可以用于将边缘像素连接起来得到边界曲线变换可以用于将边缘像素连接起来得到边界曲线?优点在于受噪声和曲线间断的影响较小优点在于受噪声和曲线间断的影响较小?在已知曲线形状的条件下,在已知曲线形状的条件下,HoughHough变换实际上是利用分散变换实际上是利用分散的边缘点进行曲线逼近,它也可看成是一种聚类分析技术的边缘点进行曲线逼近,它也可看成是一种聚类分析技术.35Hough 变换变换在图像空间中,经过(x,y)的直线:y=ax+b a-斜率,b-截距可变换为:b=-ax+y
16、,表示参数空间中的一条直线.参数空间中交点(a,b)即为图像空间中过点(xi,yi)和(xj,yj)的直线的斜率和截距.36Hough 变换变换Hough变换的基本步骤变换的基本步骤:1)在参数空间建立一个二维数组A,数组的第一维的范围为图像空间中直线斜率的可能范围(amin,amax),第二维为图像空间中直线截距的可能范围(bmin,bmax),且开始时把数组初始化为零.2)然后对图像空间中的点用Hough变换计算出所有的a,b 值,每计算出一对a,b 值,就对数组中对应的元素A(a,b)加1.计算结束后,A(a,b)的值就是图像空间中落在以a为斜率,b为截距的直线上点的数目.37Hough
17、 变换变换数组A的大小对计算量和计算精度的影响很大,当图像空间中有直线为竖直线时,斜率a为无穷大,此时,参数空间可采用极坐标.图 Hough变换的计算过程38Hough 变换变换直线检测直线检测原始图像原始图像二值化图像二值化图像细化图像细化图像Hough 变换检测出的直线变换检测出的直线能将断了的线段连接起来,并具有较强的抑制噪声的能力,能够提取出在噪声背景中的直线.Hough变换不仅可以检测直线,它可以检测所有能够给出解析式的曲线.39通过图论技术进行全局处理通过图论技术进行全局处理基于图表达边缘线段的连接,并搜索与重要边缘相对应的低开销路径的图.这种表示提供了一种在有噪声环境下效能很好的
18、抗干扰途径.403.1.3.3.1.3.门限处理门限处理(阈值分割阈值分割)由于图像门限处理的直观性和易于实现的性质分割应用中处于中心地位.,使它在图像41基本原理基本原理(a)单一门限(b)多门限进行分割的灰度级直方图上图(a)为一幅图像的灰度级直方图,其由亮的对象和暗的背景组成.对象和背景的灰度级形成两个不同的模式.选择一个门限值T,可以将这些模式分开.(b)包含3个模式.42基本原理基本原理原始图像f(x,y)灰度阈值T阈值运算得二值图像g(x,y)对象点?1如果 fx,y?Tgx,y?0如果 fx,y?T背景点?阈值选择直接影响分割效果,通常可以通过对灰度直方图阈值选择直接影响分割效果
19、,通常可以通过对灰度直方图的分析来确定它的值。的分析来确定它的值。431.直方图阈值选择直方图阈值选择利用灰度直方图求双峰或多峰选择两峰之间的谷底作为阈值442.人工阈值人工阈值人工选择法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选出合适的阈值。也可以在人工选出阈值后,根据分割效果,不断的交互操作,从而选择出最佳的阈值。452.人工阈值人工阈值原始图像原始图像T=155=155的二值化图像的二值化图像T=210=210的二值化图像的二值化图像图像直方图图像直方图463.自动阈值自动阈值迭代法迭代法在无人介入的情况下自动选取阈值是大部分应用的基本要求,自动阈值法通常使用
20、灰度直方图来分析图像中灰度值的分布,结合特定的应用领域知识来选取合适的阈值.基本思想基本思想:开始时选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略,好的阈值的改进策略应该具备两个特征,一是能够快速收敛,二是在每一个迭代过程中,新产生阈值优于上一次的阈值。473.自动阈值自动阈值迭代式阈值选择的基本步骤如下迭代式阈值选择的基本步骤如下:(1)选择图像灰度的中值作为初始阈值Ti=T0。迭代法迭代法(2)利用阈值Ti把图像分割成两部分区域,R1和R2,并计算其灰度均值?1?ini?0TiTii?in,?2?i
21、?TiL?1i?TiL?1i?ni?0i?ni适用于背景和对象在图像中占据的面积相近的情况.(3)计算新的阈值Ti+11Ti?1?(?1?2)248(4)重复步骤2、3,直到Ti+1和Ti的值差别小于某个给定值3.自动阈值自动阈值迭代法迭代法原始图像迭代阈值二值化图象图图 迭代式阈值二值化图像迭代式阈值二值化图像493.自动阈值自动阈值迭代法迭代法(a)原图原图(b)图像的直方图图像的直方图(c)通过用迭代估计的门通过用迭代估计的门限对图像进行分割限对图像进行分割的结果的结果504.自动阈值自动阈值分水岭算法分水岭算法?分水岭算法(watershed)是一种借鉴了形态学理论的分割方法,它将一幅
22、图象看成为一个拓扑地形图,其中灰度值被认为是地形高度值。高灰度值对应着山峰,低灰度值处对应着山谷。将水从任一处流下,它会朝地势底的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为吸水盆地,最终所有的水会分聚在不同的吸水盆地,吸水盆地之间的山脊被称为分水岭,水从分水岭流下时,它朝不同的吸水盆地流去的可能性是相等的。?将这种想法应用于图像分割,就是要在灰度图像中找出不同的吸水盆地和分水岭,由这些不同的吸引盆地和分水岭组成的区域即为我们要分割的目标。514.自动阈值自动阈值分水岭算法分水岭算法(a)原始图像(b)图像对应的拓扑地形图图图 图像对应的拓扑表面图图像对应的拓扑表面图524.自动阈值
23、自动阈值分水岭算法分水岭算法分水岭阈值选择算法可以看成是一种自适应的多阈值分割算法分水岭阈值选择算法可以看成是一种自适应的多阈值分割算法分水岭对应于原始图像中的边缘分水岭对应于原始图像中的边缘图图 分水岭形成示意图分水岭形成示意图534.自动阈值自动阈值分水岭算法分水岭算法分水岭算法是以梯度图的局部极小点作为吸水盆地的标记点分水岭算法是以梯度图的局部极小点作为吸水盆地的标记点,由于梯度图中可能有较多的局部极小点由于梯度图中可能有较多的局部极小点,因此可能会导致过分割因此可能会导致过分割.MATLAB函数函数L=watershed(f)原始图像分水岭分割结果局部极小值图图 不准确标记分水岭算法导
24、致过分割不准确标记分水岭算法导致过分割544.自动阈值自动阈值改进的分水岭算法改进的分水岭算法原始图像原图像的距离变换标记外部约束标记内部约束由标记内外部约束重构的梯度图分割结果图图 准确标记的分水岭算法分割过程准确标记的分水岭算法分割过程553.1.4.区域分割区域分割56基本思想基本思想?阈值分割法由于没有或很少考虑空间关系,使多阈值选择受到限制?基于区域的分割方法可以弥补这点不足,它利用的是图像的空间性质,该方法认为分割出来的属于同一区域的像素应具有相似的性质,其概念是相当直观的。?传统的区域分割算法有区域生长法和区域分裂合并法。该类方法在没有先验知识可以利用时,对含有复杂场景或自然景物
25、等先验知识不足的图像进行分割,也可以取得较好的性能。但是,空间和时间开销都比较大。57基本公式基本公式形式化地定义如下:令I表示图像,H表示具有相同性质的谓词,图像分割把I分解成n个区域 Ri,i1,2,n,满足:1)URi?1Ni?I,Ri?Rj?,?i,j,i?j2)?i,i?1,2,L,n,H(Ri)?True3)?i,j,i?j,H(Ri?Rj)?False条件(1)表明分割区域要覆盖整个图像且各区域互不重叠;条件(2)表明每个区域具有相同的性质;条件(3)表明相邻的两个区域性质相异不能合并为一个区域。581.区域生长区域生长区域生长是一种根据事前定义的准则将像素或子区域聚合成更大区域
26、的过程.区域生长法主要考虑象素及其空间邻域象素之间的关系区域生长法主要考虑象素及其空间邻域象素之间的关系?开始时确定一个或多个象素点作为种子,然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的象素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区域为止。?区域内象素的相似性度量可以包括平均灰度值、纹理、颜色等信息。591.区域生长区域生长区域增长示例区域增长示例169269355(a)初始情形初始情形169269355169269355169269355(b)T=1 (c)T=2 (d)T=3生长准则:所考虑的像素点和种子点的灰度值的绝对值差小于或等
27、于某个阈值T久将该像素点归入种子点所在的区域.601.区域生长区域生长步骤步骤?选择合适的种子点?确定相似性准则(生长准则)?确定生长停止条件611.区域生长区域生长实例实例(a)显示有缺陷的焊缝的图像(b)种子点(c)区域生长的结果(d)对有缺陷的焊缝区域进行分割得到的边界621.区域生长区域生长实例实例原始图像及种子点位置三个种子点区域生长结果原始图像及种子点位置四个种子点区域生长结果图图 区域生长区域生长632.区域分裂区域分裂件件如果区域的某些特性差别比较大,即不满足一致性准则时,则区域应该采用分裂法,分裂过程从从图像的最大区域开始,一般情况下,是从整幅图像开始.开注意:开注意:?确定
28、分裂准则(一致性准则)?确定分裂方法,即如何分裂区域,使得分裂后的子区域的特性尽可能都满足一致性准则值。642.区域分裂区域分裂算法算法?形成初始区域?对图像的每一个区域Ri,计算P(Ri),如果P(Ri)=FALSE则沿着某一合适的边界分裂区域?重复步骤2,当没有区域需分裂时,算法结束。653.区域合并区域合并基本思想基本思想单纯的区域分裂只能把图像分成许多满足一致性谓词的区域,相邻的具有相同性质的区域并没有合成一体.?合并运算就是把相邻的具有相似性质的区域合成为一个区域?合并算法中最重要的运算是确定两个区域的相似性?评判区域相似性方法有许多,评判相似性的方法可以基于区域的灰度值,也可以基于
29、区域边界的强弱性等因素。一种简单的方法是比较它们的灰度均值663.区域合并区域合并算算 法法?使用某种方法进行图像的初始区域分割。?对于图像中相邻的区域,计算是否满足一致性谓词,若满足则合并为一个区域。?重复步骤2,直到没有区域可以合并,算法结束。674.区域分裂合并区域分裂合并数据结构数据结构区域分裂合并法无需预先指定种子点,它按某种一致性准则分裂或者合并区域.可以先进行分裂运算,然后再进行合并运算;也可以分裂和合并运算同时进行,经过连续的分裂和合并,最后得到图像的精确分割效果.分裂合并法对分割复杂的场景图像比较有效.684.区域分裂合并区域分裂合并数据结构数据结构具体实现时,分裂合并算法可
30、以基于四叉树数据表示方式进行.694.区域分裂合并区域分裂合并数据结构数据结构(a)初始图像(b)第一次分割图图 图像分裂示例图像分裂示例(c)第二次分割704.区域分裂合并区域分裂合并算法算法?设整幅图像为初始区域?对每一区域R,如果P(R)=FLASE,则把该区域分裂成四个子区域?重复上一步,直到没有区域可以分裂?对图像中任意两个相邻的R1和R2,如果P(R1UR2)=TRUE,则把这两个区域合并成一个区域。?重复上一步,直到没有相邻区域可以合并,算法结束714.区域分裂合并区域分裂合并实例实例原始图像分裂最小子区域大小16?16分裂最小子区域大小8?8分裂最小子区域大小8?8图图图像分裂合并图像分裂合并72