1、第第7 7章章 图像分割图像分割 7.1 7.1 图像分割图像分割7.2 7.2 基于阈值选取的图像分割方法基于阈值选取的图像分割方法 7.3 7.3 基于区域的图像分割方法基于区域的图像分割方法 7.4 7.4 基于边缘检测的图像分割基于边缘检测的图像分割 7.5 Hough7.5 Hough变换检测法变换检测法学习目标 了解图像分割的类别和作用 掌握基于阈值选取的图像分割方法 掌握基于区域的图像分割方法 掌握基于边缘检测的图像分割方法 了解Hough变换检测法7.1 图像分割图像分割的目的图像分割的目的 图像分割是指通过某种方法,使得画面场景被分为“目标物”及“非目标物”两类,即将图像的像
2、素变换为黑、白两种。 因为结果图像为二值图像,所以通常又称图像分割为图像的二值化处理。图像分割示例图像分割示例 条码的二值化局局部部放放大大?图像分割示例 肾小球区域的提取图像分割示例 细菌检测图像分割示例 印刷缺陷检测检测结果检测结果局部放大图局部放大图图像分割示例 印刷缺陷检测图像图像分割分割的难点的难点 从前面的例子可以看到,图像分割是比较困难的。原因是画面中的场景通常是复杂的,要找出两个模式特征的差异,并且可以对该差异进行数学描述都是比较难的。 l图像分割图像分割 把图像空间按照一定的要求分成一些“有意义”的区域的技术叫图像分割。 例如: (1)要确定航空照片中的森林、耕地、城市区域等
3、,首先需要将这些部分在图像上分割出来。 (2)要辨认文件中的个别文字,也需先将这些文字分选出来。 (3)要识别和标定细胞的显微照片中的染色体,需要用图像分割技术。 一幅图像通常是由代表物体的图案与背景组成,简称物体与背景。若想从一幅图像中“提取”物体,可以设法用专门的方法标出属于该物体的点,如把物体上的点标为“1”,而把背景点标为“0”,通过分割以后,可得一幅二值图像。 图像分割的应用领域l 机器阅读理解l OCR录入l 遥感图像自动识别l 在线产品检测l 医学图像样本统计l 医学图像测量l 图像编码l 图像配准的预处理 图像分割的意义图像分割的意义 是把图像分成若干个有意义区域的处理技术。其
4、从本质上说是将各像素进行分类的过程。分类所依据的特性可以是像素的灰度值、颜色或多谱特性、空间特性和纹理特性等。 图像分割方法分类: 大致可以分为基于边缘检测的方法和基于区域生成的方法。 第一类为找出图像的边缘信息,首先检出局部特性的不连续性,再将它们连成边界,这些边界把图像分成不同的区域,从而分割出各个区域,常用边缘检测方法有基于边缘检测的图像分割、基于阈值选取的图像分割; 第二类为基于区域生成的方法,是将像素分成不同的区域,根据相应的区域特性在图像中找出与其相似的部分并进行处理,常用的方法有区域生长、分裂-合并分割方法。 以上这两类方法互为对偶,相辅相成,有时还要将它们结合起来,以得到更好的
5、分割效果。7.2 基于阈值选取的图像分割方法 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 设图像为设图像为f (x, y) ,其灰度级范围是,其灰度级范围是0,L-1,在,在0 0和和L-1之间选择一个合适的灰度阈值之间选择一个合适的灰度阈值T,则图像分,则图像分割方法可描述为:割方法可描述为: 这样得到的这样得到的g (x, y)是一幅是一幅二值图像二值图像。 TyxfTyxfyxg),(),(01),(7.2.1 7.2.1 灰
6、度阈值分灰度阈值分割割1 1阈值分割原理阈值分割原理 常用的图像分割方法是把图像灰度分成不同的等级,然后用设置灰度门限(阈值)的方法确定有意义的区域或分割物体的边界。 常用的阈值化处理就是图像的二值化处理,即选择一个阈值,将图像转换为黑白二值图像,用于图像分割及边缘跟踪等预处理。图像阈值化处理的变换函数表达式为TyxfTyxfyxg),(),(0255),(两种变换曲线两种变换曲线 (a)原图像 (b)图像直方图图像的二值化阈值分割示例图像的二值化阈值分割示例 (c)分割阈值T=90 (d)分割阈值T=130 (e)分割阈值T=180 在图像的阈值化处理过程中,选用不同的阈值其处理结果差异很大
7、。 阈值过大,会提取多余的部分;而阈值过小,又会丢失所需的部分。 因此,阈值的选取非常重要。 2 2灰度图像多区域阈值分割灰度图像多区域阈值分割 图像中的区域(图像中的区域(n=4n=4) 在各区域的灰度差异设置在各区域的灰度差异设置n n个阈值,并进行如个阈值,并进行如下分割处理:下分割处理: 112100110),(),(),(),(),(nnnnnTjifTjifTTjifTTjifggggjig 7.2.2 7.2.2 直方图阈值直方图阈值1直方图阈值的双峰法 当灰度图像中画面比较简单且对象物的灰度分布比较有规律,背景和对象物在图像的灰度直方图上各自形成一个波峰,由于每两个波峰间形成一
8、个低谷,因而选择双峰间低谷处所对应的灰度值为阈值,可将两个区域分离。 把这种通过选取直方图阈值来分割目标和背景的方法称为直方图阈值双峰法。 具体实现的方法是先做出图像的灰度直方图,若只出现背景和目标物两区域部分所对应的直方图呈双峰且有明显的谷底,则可以将谷底点所对应的灰度值作为阈值t,然后根据该阈值进行分割就可以将目标从图像中分割出来。 这种方法适用于目标和背景的灰度差较大,直方图有明显谷底的情况。直方图的双峰与阈值直方图的双峰与阈值I=imread(blood.bmp); %读入灰度图像并显示imshow(I);figure;imhist(I); %显示灰度图像直方图Inew=im2bw(I
9、,140/255); %图像二值化,根据 140/255确定的阈值,划分目标与背景figure;imshow(Inew); 双峰法比较简单,在可能情况下常常作为首选的阈值确定方法,但是图像的灰度直方图的形状随着对象、图像输入系统、输入环境等因素的不同而千差万别,当出现波峰间的波谷平坦、各区域直方图的波形重叠等情况时,用直方图阈值法难以确定阈值,必须寻求其他方法来选择适宜的阈值。7.2.3 7.2.3 直方图最大熵阈值直方图最大熵阈值一维直方图一维直方图 ;,.,1 , 0/tippPtiO1,.,2, 1)1/(LttippPtiB 式中 目标区域和背景区域熵的定义为 tiitpp0OOtiO
10、PPtH20log)(BBLtiBPPtH211log)( 由目标区域和背景区域熵、得到熵函数定义为 当熵函数 取得最大值时,对应的灰度值就是所求的最佳阈值 )(max10ttLtBHHt0)()(t7.2.4 7.2.4 二维直方图阈值二维直方图阈值 由于图像的一维灰度直方图没有明显的峰和谷时,仅利用一维灰度值分布选取的阈值往往难以获得满意的图像分割效果,甚至还可能产生错误的分割。 解决的方法是可以在一维灰度直方图阈值分割算法上引入图像的二次统计特性(区域灰度特征),由于区域灰度特征包含了图像的部分空间信息,且对噪声的敏感程度要低于点灰度特征。 综合利用图像的点灰度特征和区域灰度特征就可较好
11、的表征图像的信息,达到改善图像的分割质量,从而实现二维直方图最大熵阈值。 1二维直方图 由原始图像f(x,y)像素的灰度级和平滑图像g(x,y)对该像素的邻域平均灰度级共同来构成一个二元函数 z(i,j) 像素的灰度级和该像素的邻域平均灰度级的可能取值为LL,设为图像中点灰度为i及其区域灰度均值为j的像素点数,为点灰度与区域灰度均值对(i,j)发生的概率,则 i,j0,2,L-1其中MN为图像的大小。NMyxgyxfjiz),(),(),(NMnpijij2. 二维最大熵阈值分割 在二维直方图中,高峰主要分布在平面的对角线附近,并且在总体上呈现出双峰状态。 二维直方图的灰度平面图,如下图所示,
12、其中A区和B区分别代表目标和背景(或相反),远离对角线的C区和D区代表边界和噪声,所以应该在A区和B区中通过二维最大熵法确定最佳阈值,使其真正代表目标和背景的信息量最大。 二维直方图的灰度平面图二维直方图的灰度平面图 设A区域和B区域各自具有不同的概率分布 ,阈值设在(s,t),定义离散二维熵为 A区和B区的二维熵分别为 ijijLiLjppHln1010AAAAijAijsitjPHPPpPpAHlnln)(00BBBBijBijLsiLtjPHPPpPpBH lnln)(1111 定义熵的判别函数为 选取的最佳阈值向量满足 )()(),(BHAHtsAALAAAAPHHPHPPBHAHts
13、1)1 (ln)()(),(),(max),(*tsts7.2.5 7.2.5 全局阈值和局部阈值全局阈值和局部阈值 阈值法分割图像的关键:阈值的选择; 阈值法分为:全局阈值分割法和局部阈值分割法; 阈值类型:单阈值,多阈值。1.全局阈值分割u全局阈值分割法在图像处理中应用较多,它在整幅图像内采用固定的阈值分割图像;u经典的阈值选取以灰度直方图为处理对象;u 根据阈值选择方法的不同,分为模态方法、迭代式阈值选择等方法,都是以直方图为研究对象来确定分割阈值的。选取不同阈值图像分割的效果2.局部阈值分割 原始图像分为几个小的子图像,对每个子图像分别求出最优分割阈值; 相邻子图像之间的边界处可能产生
14、灰度级的不连续性,需要平滑; 常用方法有:灰度差直方图法,微分直方图法。 局部阈值分割能够改善分割效果,但存在以下缺点:每幅子图像的尺寸不能太小,否则统计出的结果无意义; 每幅图像的分割是任意的,如果一幅子图像正好落在目标区域或背景区域,而根据统计结果对其进行分割,也许会产生更差的结果; 局部阈值法对每一幅子图像都要进行统计,速度慢,难以适应实时性要求。7.3 基于区域的图像分割方法 分割的目的是把一幅图像划分成一些区域,对于这个问题的最直接的方法是把一幅图像分成满足某种判据的区域。 要划分成区域,要确定一个区域与其它区域相区别的特征,还要产生有意义分割的相似性判据。 7.3.1 7.3.1
15、区域生长法区域生长法 分割区域的一种方法叫区域生成或区域生长。可以从满足区域特征的一点开始,加上与已知点相似的邻点形成一个区域。 这个相似性准则可以是灰度级、彩色值、结构、梯度或其它特征。相似性的测度可以由所确定的阈值来判定。所以,此方法是从满足检测准则的点开始,在各个方向上生长区域。当其邻近点满足检测准则,就并入区域中。不断重复这一过程,直到没有可接受的邻近点为止。 区域生长分割示意图区域生长法时需要由以下 3 3 个步骤来实现 (1 1)确定选择一组能正确代表所需区域的起始点种子像素。 (2 2)确定在生长过程中将相邻像素包括进来的(相似性判别生长)准则。 (3 3)确定区域生长过程停止的
16、条件或规则。 当然,区域生长分割方法针对不同的实际应用,需要根据具体图像的具体特征来确定种子像素和生长及停止准则。1灰度差判别式 相似性的判别值可以选取像素与邻域像素间的灰度差,也可以选取微区域与相邻微区域间的灰度差。灰度差判别式为 不变合并,属于同一标记TTnmfjifC |),(),(| 当CT,说明基本单元(i,j)与(m,n)相似, (i,j)应与(m,n)合并,计算合并后微区域的平均灰度值;当CT,说明两者不相似,f (i,j)保持不变,仍为不属于任何区域的基本单元。 区域生长实例区域生长实例 如下图示,其准则是邻近点的灰度级与物体的平均灰度级的差小于2。区域生长的简单图示 下面举例
17、说明用灰度差判别准则的合并法形成区域的过程。设例中阈值T=2T=2,基本单元为像素,在3 33 3的微区域中与像素相邻的像素数有8 8个, 灰度差判别准则的区域合并灰度差判别准则的区域合并灰度差判别准则的区域合并7.3.2 7.3.2 分裂合并分裂合并 分裂合并的方法是一种自上而下的方法,它的思想是首先将图像划分为若干小区域,然后运用特定的检验判据,将包含不同内容的区域分裂,将包含相同内容的区域合并,最后得到分割图像。 使用分裂和合并的组合方法可以实现自动细化分割运算,通过合并属于同一目标的邻接区域来消除错误边界和虚假区域,同时通过分裂属于不同目标的区域来补偿丢失的边界。 分裂合并常用的表示方
18、法有两种:一种称为四叉树;另一种称为金字塔。 0层1层2层 四叉树分裂四叉树分裂- -合并基本数据结构合并基本数据结构l1.树结构树的根代表图像本身,树的叶代表每个像素;0层的根可看作1个节点,第1层有4个节点,若图像大小为4x4,则应该有16个节点,需要经过0层 1层 2层才能抵达每个树叶(像素),整个树结构有n+1=3层;区域生长先从单个生长点开始通过不断接纳满足接收准则的新生长点,最后得到整个区域,从而完成图像的区域划分。 2.图像四叉树结构 四叉树要求输入图像f(x,y)为2的整数次幂;设R代表整个正方形图像区域,一个四叉树从最高0层开始,把R连续分成越来越小的1/4的正方形子区域Ri
19、,不断将该子区域Ri进行4等分,最终使子区域Ri处于不可分状态。 MATLAB中提供了四叉树分解函数qtdecompqtdecomp: S=S=qtdecomp(Iqtdecomp(I) ):对灰度图像I进行四叉树分解,返回的四叉树结构是稀疏矩阵S。直到分解的每一小块内的所有元素值相等。 S=S=qtdecomp(I,threshold,mindimqtdecomp(I,threshold,mindim) ):通过指定阈值threshold,使分解图像的小块中最大像素值和最小像素值之差小于阈值。此函数只适合方阵的阶为此函数只适合方阵的阶为2 2的正整数次方。的正整数次方。图像的四叉树分解实例图
20、像的四叉树分解实例 3.金字塔数据结构是一个从11到NN逐次增加的n+1个图像构成的序列;序列中的NN图像就是原图像f(x,y),将其划分为N/2N/2个大小相同互不重叠的正方区域,每个区域都含有4个像素,各区域中四个像素灰度平均值分别作为N/2N/2图像相应位置的像素灰度;将N/2N/2图像划分为N/4N/4个大小相同互不重叠的正方区域,以此类推,最终得到图像的金字塔数据结构表达。 分裂-合并算法的例子。设有88图像的0层、1层、2层、3层如图7.2.6 所示,3层为树叶,其中的数值为灰度值以及各层的小区域平均灰度值。根的灰度值表示图像的平均亮度。7.4 基于边缘检测的图像分割 数字图像的边
21、缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域十分重要的基础,也是图像识别中提取图像特征的一个重要属性。在进行图像理解和分析时,第一步往往就是边缘检测, 由于边缘广泛存在于目标与目标、物体与背景、区域与区域(含不同色彩)之间,它是图像分割所依赖的重要特征。 目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。7.4.1 7.4.1 边缘检测的基本原理边缘检测的基本原理图像边缘是图像最基本的特征,边缘在图像分析中起着重要的作用。所谓边缘(Edlge)是指图像局部特性的不连续性,灰度或结构等信息的突变处称为边缘。 l边缘检测边缘检测 边缘可定义为在局部区域内图
22、像的差别,边缘可定义为在局部区域内图像的差别,表现为图像上的不连续性。表现为图像上的不连续性。( (灰度级的突变,纹理结构的突变,颜色的变化灰度级的突变,纹理结构的突变,颜色的变化) )。灰度级突变有灰度级突变有 : 脉冲状边缘脉冲状边缘 阶跃脉冲状边缘阶跃脉冲状边缘 阶跃边缘阶跃边缘 灰度级突变灰度级突变图像边缘的灰度变化与导数图像边缘的灰度变化与导数 7.4.2 7.4.2 边缘检测算子边缘检测算子l 1 1梯度算子l 2 2一阶微分算子 (1 1)RobertsRoberts边缘检测算子边缘检测算子 (2 2) PrewittPrewitt算子算子 (3 3) SobelSobel算子算
23、子 10010110111000111101101101l3Laplace边缘检测算子(二阶微分) 121000121Laplace运算的检测模板 1012021014拉普拉斯高斯算子(LOG) (Laplace算子的改进)G(x,yG(x,y) ) 二维高斯函数二维高斯函数 LOGLOG算子边缘提取实例算子边缘提取实例原始图像原始图像edge函数的调用格式为:BW=edge(I,method)BW=edge(I,method,thresh)BW=edge(I,method,thresh,direction)BW,thresh=edge(I,method,)其中,I为输入图像,edge函数对灰
24、度图像I进行边缘检测,返回与I同样大的二值图像BW,method表示选用的方法类型,可以为sobel,prewitt,robberts,LOG, canny等。MATLABMATLAB中调用中调用edgeedge函数实现各算子进行边缘检测例程函数实现各算子进行边缘检测例程: :采用各种边缘检测算子得到的边缘图像效果 采用各种边缘检测算子得到的边缘图像效果 对图像加入椒盐噪声后边缘检测图像效果 7.5 Hough变换检测法 霍夫(Hough)变换是一种线描述方法。它可以将图像空间中用直角坐标表示的直线变换为极坐标空间中的点。一般常将Hough变换称为线-点变换,利用Hough变换法提取直线的基本
25、原理是,它把直线上点的坐标变换到过点的直线的系数域,通过利用共线和直线相交的关系,使直线的提取问题转化为计数问题。 Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。l1 1直角坐标中的HoughHough变换 该变换即为直角坐标中对( (x,yx,y) )点的HoughHough变换,它表示参数空间的一条直线。l 2 2极坐标中的HoughHough变换 直线的霍夫变换为 霍夫变换使不同坐标系中的线和点建立了一种对应关系。 yaxbsincosyx(a)xy平面参数表示直线 (b)映射极坐标平面的一个点 (c)xy平面的一簇直线(d)变换到平面 的 (e)xy平面的三个共线点 (f) 平面上公共 正弦状的轨迹 交点的3条曲线霍夫变换的原理示意图霍夫变换的原理示意图 根据HoughHough变换原理,可以用HoughHough变换提取检测直线。 HoughHough变换法主要优点是受共线点的间隙和噪声影响较小。因此其思想可以推广到检测曲线,如对圆的检测,其参数空间增加到三维。 利用利用HoughHough变换在图像中检测直线实例变换在图像中检测直线实例