1、数字图像处理图像分割图像分割图像分割概论v 图像分割的目的是理解图像的内容,提取出我们感兴趣的对象。v 图像分割按照具体应用的要求和具体图像的内容将图像分割成一块块区域。v 图像分割是模式识别和图像分析的预处理阶段。v 通常图像分割采用聚类方法,假设图像中组成我们所感兴趣对象的像素具有一些相似的特征,如相同的灰度值、相同的颜色等。传统的图像分割技术:基于像素灰度值的分割技术 基于区域的分割技术 基于边界的分割技术 v 图像的描述,包括边界和区域的描述v 对图像区域的操作数学形态学 灰度阈值分割法 灰度阈值分割法是最古老的分割技术 只能应用于图像中组成感兴趣对象的灰度值是均匀的,并且和背景的灰度
2、值不一样。事先决定一个阈值,当一个像素的灰度值超过这个阈值,我们就说这个像素属于我们所感兴趣的对象;反之则属于背景部分。这种方法的关键是怎样选择阈值,一种简便的方法是检查图像的直方图,然后选择一个合适的阈值。如果图像适合这种分割法,那么图像的直方图在表示对象和背景的小范围灰度值附近出现一个高峰值。适合这种分割法的图像的直方图应是双极模式,我们可以在两个峰值之间的低谷处找到一个合适的阈值。单一阈值方法也不适合于由许多不同纹理组成一块块区域的图像。v 用如下所示的循环迭代策略得到阈值1.假设图像中处于四个角的像素是属于背景部分,其它像素属于感兴趣对象,然后定义一个背景灰度和对象灰度的初始值。2.通
3、过下面的公式循环迭代直至前后两次循环得到的阈值Ti+1和Ti相差非常小,循环过程停止。21iobjectibackgroundiTuibackground和uiobject分别是循环第i次得到的背景灰度值和对象灰度值。v 这种单一阈值分割方法一种拓展就是将图像分成一个个子区域,不同的子区域采用不同的阈值。将图像分成6464重叠的子区域,并在每个子区域中检测区域的直方图是不是双极模式,如果一个区域的直方图不是双极模式,则判定该区域完全属于背景部分或对象部分。原始图像分割结果(T=170)基于纹理的分割方法v 什么是纹理纹理是图像中一个重要而又难于描述的特征,至今还没有精确的纹理定义。纹理图像在局
4、部区域内呈现了不规则性,而在整体上表现出某种规律性。v 纹理的组成 一是组成图像纹理的基元 另一个是这些基元之间的空间分布关系。纹理基元的空间排列可能是随机的,也可能是相互之间互相依赖,这种依赖性可能是有结构的,也可能是按某种概率分布排列的,也可能是某种函数形式的。v 纹理的描述图像纹理可以定性用许多词汇来描述,如粗糙、精细、光滑、方向性、规则性和粒度等等。但是遗憾的是要将这些语义描述转化为数学模型不是一件容易的事。一般来说图像纹理由纹理中相邻像素之间的灰度变化及纹理基元模板来描述。v 分析和测量纹理的算法(两类)从图像有关属性的统计分析出发 统计分析方法 结构分析方法 找出纹理基元,以后再从
5、结构组成上探索纹理的规律,也还有直接去探求纹理构成的结构规律。一般用统计结构尺度来量化纹理的特征,在统计结构尺度中我们不仅仅需要抓住或测量纹理在一个像素点邻近区域的变化,而且还需考虑纹理的空间结构组织,换言之,不仅仅需要考虑相邻两个像素之间的灰度变化,还要考虑它们之间的空间关系。在标注一个像素点的纹理特征时很可能是多维数据,如距离、方向、灰度变化等等。纹理分析的自相关函数方法 v 自相关函数的定义若有一幅图像f(i,j),i,j=0,1,N-1,它的自相关函数为:101021010),(),(),(),(NiNjNiNjjifyjxifjifyx如果图像中灰度基元的面积比较大,则自相关函数随距
6、离的增大,下降速度比较慢 如果灰度基元中灰度呈周期变化,则自相关函数的升降也呈周期性变化。纹理分割Hurst函数 v Hurst系数是单一数值,它的计算过程如下:1.将一个圆放在一个像素点上,逐渐增大圆的半径直至覆盖我们所需的邻域;2.检查这个圆所覆盖范围内的所有像素点的灰度值,最大和最小的灰度值定义了一个灰度值范围。3.不同相邻像素个数的对数值相对于半径的对数值就为各相邻像素的Hurst系数。l 当纹理变化比较小时,Hurst系数也比较小,反之,Hurst系数比较大。hghfedefhghecbcehdba abdgecbcehfedefhghsND1loglog其中N为不同相邻像素的个数,
7、s是不同像素点离参考像素点的距离。各个像素离参考像素点a的距离为:10:,3:,8:,5:,2:,2:,1:hgfedcbN=7灰度共生矩阵的纹理分析 v 灰度共生矩阵直方图是研究单个像素的灰度统计分布特性,但不能很好地反映出像素之间空间相关性的规律。;图像纹理的一个重要特征是局部区域中灰度的空间分布特性和像素位置之间的空间相关性;因此希望能找出两个像素的联合分布的统计形式。ccNL21rrNL21gNG21图像I为映射:水平空间定义域:垂直空间定义域:灰度值的集合 GLLIrc:灰度共生矩阵为概率矩阵:GjiPij,:其中Pij为距离为d的两个像素,一个像素的灰度值为i,另一个像素灰度值为j
8、的情况在整幅图像中出现的频率。灰度共生矩阵表示空间灰度值依赖性的概率,这个灰度共生矩阵是对称的;不仅仅和两个像素之间的距离有关,还跟两个像素之间的空间角度有关。)1,1()2,1()3,1()4,1()1,2()2,2()3,2()4,2()1,3()2,3()3,3()4,3()1,4()2,4()3,4()4,4(4,3,2,1yL4,3,2,1xL44的图像的位置坐标)3,4(),4,4(),4,4(),3,4(),2,4(),3,4(),3,4(),2,4(),1,4(),2,4(),2,4(),1,4(),3,3(),4,3(),4,3(),3,3(),2,3(),3,3(),3,3
9、(),2,3(),1,3(),2,3(),2,3(),1,3(),3,2(),4,2(),4,2(),3,2(),3,3(),2,3(),1,3(),2,3(),2,3(),1,3(),3,2(),4,2(),4,2(),3,2(),2,2(),3,2(),3,2(),2,2(),1,2(),2,2(),2,2(),1,2(),3,1(),4,1(),4,1(),3,1(),2,1(),3,1(),3,1(),2,1(),1,1(),2,1(),2,1(),1,1(1|,0|)()(),(),(nlmkLLLLnmlkRxyxyH上图水平方向距离为1的像素对 如果角度45度以为间隔,Pij的形
10、式如下),(,),(,|,0|)()(),(),(#)0,(jnmIilkIdnlmkLLLLnmlkdjiPcrcr),(,),(),(),(|)()(),(),(#)45,(jnmIilkIdnldmkordnldmkLLLLnmlkdjiPcrcr),(,),(,0,|)()(),(),(#)90,(jnmIilkInldmkLLLLnmlkdjiPcrcr),(,),(),(),(|)()(),(),(#)135,(jnmIilkIdnldmkordnldmkLLLLnmlkdjiPcrcr其中符号#表示集合中元素的个数。上述公式中距离的尺度为|,max|),(),(nlmknmlkd
11、1111000003322222一个44图像 21001601004201240HP020022220240020690vP0200201301210312135LDP010014200221001445RDP左边图像相邻像素角度为0、90、135、45度、距离为1的灰度共生矩阵 v 灰度共生矩阵抽取出来的纹理特征系数&二阶矩jiijPf,21 二阶矩是图像灰度分布均匀性的度量。二阶矩是灰度共生矩阵像素值平方和,所以也称为能量。纹理较粗,此时二阶矩值f1较大,可以理解为粗纹理含有较多的能量;反之,二阶矩值f1较小,即细纹理含有较少的能量。&熵jiijijPPf,2log 熵值是图像所具有的信息
12、量的度量 若图像没有任何纹理,则灰度共生矩阵几乎为零,则熵值f2接近为零;若图像充满细纹理,则Pij的值近似相等则该图像的熵值f2最大 若图像中分布较少的纹理,Pij的数值差别较大,则该图像的熵值f2较小&对比度jilijkPjif,3|图像的对比度可以理解为图像的清晰度,即纹理清晰程度。在图像中,纹理的沟纹越深,则其对比度f3越大,图像的视觉效果越是清晰。&相关jiijPujwif,24)(相关使用来衡量灰度共生矩阵的元素在行的方向或列的方向的相似程度。v 上述4个统计参数为应用灰度共生矩阵进行纹理分析的主要参数,可以组合起来,成为纹理分析的特征参数使用。例如,某图像具有水平方向的纹理占主导
13、地位,则图像在0度的灰度共生矩阵的相关值往往大于90、135、45度的灰度共生矩阵的相关值。区域生长法 v 什么是区域 一般用以下性质来定义区域:图像中属于某个区域的像素点必须加以标志,当应用区域生长法来分割图像时,最终应该不存在没有被标注的像素点。在同一区域的像素点必须相连。这就意味着我们可以从现在所处的像素点出发,按照某种连接方式到达任何一个邻近的像素点。常用的有两种各向同性连通方式:四连通和八连通。区域之间不能重叠,也就是说一个像素只能有一个标注。在区域Ri中每一个像素点必须遵从某种规则P(Ri)。例如我们说P(Ri)为真,当区域Ri中所有像素具有相似的灰度(相似性在一定的范围内)。两个
14、不同的区域Ri和Rj具有的规则不同。v 区域生长法 最简单的区域生长法是将像素聚类,为了达到这一目的,我们从一个种子像素点出发,按照某种连通方式和规则P来检查周围邻近的像素点,如果具有和种子像素点相似的性质,就说明它们属于同一区域,这种算法有点类似于计算机图形学中的多边形种子填充算法。区域生长法的程序伪码 procedureprocedure label_region_of(I,x,y,label,intensity);ifif I(x,y)=intensity thenthenI(x,y):=label;label_region_of(I,x,y-1,label,intensity);lab
15、el_region_of(I,x,y+1,label,intensity);label_region_of(I,x-1,y,label,intensity);label_region_of(I,x+1,y,label,intensity);这是一个在高层编程实现递归调用很好的方式 不过这种方法的一个主要缺点是怎样获得初始的种子像素点。我们可以重新回到基于直方图的方法上来,为每一个区域寻找一个种子像素,找到具有图像直方图中峰值的像素点作为种子像素。区域分割与合并 原理将图像分割成越来越小的区域直至每个区域中的像素点具有相似的数值。这种方法的一个优点是不再需要前面所说的种子像素 L 但是它有一个明
16、显的缺点是会使分割后的区域具有不连续的边界。ifif current region homogeneous test is FALSEthenthen split into four quadrants attempt to merge these quadrants recursively call the procedure for each subdivisionfind any remaining merges 一种简单直接实现算法简单的区域分割与合并算法过程 通常在一个区域中所要考虑的参数不只一个,可以采用统计测试的方式;例如考虑一个区域中数值的均值和方差等。如果它的四个分块中的均值
17、和方差相差不大的情况下,则可以说一个区域是单调均匀的;同样我们可以采用这种方式合并具有相同性质的区域。Hough变换 切线),(ccyx:在形状物中的任意一个点为参考点),(yx:边界上任意一点r:(x,y)到参考点的距离:是x轴与边界点(x,y)切线的法线之间的夹角 :参考点与点(x,y)的连线与x轴之间的夹角)(rr sin)(cos)(ryyrxxcc则有:某已知特殊边界R,可按 的大小列成一个二维表格,),(iiiri确定后,查表可得(i,ri),经上述两式可得到(xc,yc)。对已知形状建立了R表后,开辟一个二维存储区,对未知图像各点都来查已建立的R表,然后计算(xc,yc),若未知
18、图像各点计算出的(xc,yc)很集中,就表示已找到该已知形状的边界。1.对将要找寻的某物边界建立一R表,以步进值i来求i,ri。2.在需要判断被测图像中有无已知形状物时,也可对该图某物各点在内存中建立一存储区,存储内容是累加的。把xc,yc从最小到最大用步进表示,并作为地址,记作记作A(xcmin,xcmax;ycmin,ycmax),存储阵列的内容初始化为零。3.对图像边界上每一点(xi,yi),计算i,查R表得到i和ri,计算得到(xc,yc)。4.使相应的存储阵列A(xc,yc)加1;5.在A(xc,yc)阵列中找一最大值,就找出了图像中某物体的边界。数学形态学 形态学(Morpholo
19、gy)原是对于动植物调查时采取的某种形式的研究。数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,它建立在集合代数的基础上,是用集合论方法定量描述集合结构的学科。1985年之后,数学形态学逐渐成为分析图像几何特征的工具。数学形态学包括一组基本的形态学运算子:腐蚀(Erosion)、膨胀(Dilation)、开(Opening)、闭(Closing)等。运用这些算子及其组合来进行图像形状和结构的分析及处理。形态学的理论基础是集合论。在图像处理中形态学的集合代表着黑白和灰度图像的形状,如黑白图像中的所以黑像素点组成了此图像的完全描述。通常我们选择图像中感兴
20、趣的目标图像区域像素集合来进行形态学变换。v 基本运算 1.集合关系 设A和S为R2的子集,A为为物体区域,B为某种结构单元,则B结构单元对A的关系有三类:1)S包含于A,AS 2)S包含于A,AS3)S击不中(MISS)A,AS2.平移 22,RxRA,记A平移x为Ax,定义为 AAaxax3.膨胀 1.S为结构单元,广义的膨胀定义为ASASAaaba,1.当S为33结构元时,广义膨胀就为一般意义上的膨胀。4.腐蚀 1.S为结构单元,广义的腐蚀运算定义为 ASASAaaa,1.当S为33结构元时,广义腐蚀就为一般意义上的腐蚀。1.一般意思上的膨胀是将与物体边界接触的背景像素合并到物体中的过程
21、。2.如果物体是个圆,进行一次膨胀后,它的直径会增大两个像素。3.如果两个物体在某处用少于三个像素分开,膨胀后这两个物体就合并成为一个物体了。1.简单的腐蚀运算是将一个物体沿边界减小的过程,在物体的周边较少一个像素。2.如果物体是一个圆,则进行一次腐蚀运算后,它的直径减少2。二值图 腐蚀 膨胀 腐蚀和膨胀示意图 5.开和闭运算 1.腐蚀运算后再进行膨胀运算的组合运算称为开运算开运算(Opening)。SSASA)(1.开运算的效果:1)删除小物体;2)将物体拆分为小物体;3)平滑大物体边界而不明显改变它们的面积;1.膨胀运算后再进行腐蚀运算的组合运算称为闭运算闭运算(Closing)。SSAS
22、A)(1.闭运算的效果:1)填充物体的小洞;2)连接相近的物体;3)平滑物体的边界而不明显改变它们的面积。v 腐蚀和膨胀的衍生运算 腐蚀的反复进行会导致物体消失,而膨胀的反复进行的结果是所以物体都合并到一起了。我们可以改变这些过程来产生一些别的效果以适应实际的应用。1.收缩 保持单个像素的物体不变的腐蚀运算称为收缩收缩(Shrinking)。2.细化 我们可以修改腐蚀计算过程来保持物体不被分开。首先我们进行有条件的常规的腐蚀过程,我们只是将要删除的像素打上标记而并不真正删除;然后逐步访问打上标记的像素,如果删除该标记像素不会分开物体,就删除它,否则就保留它。以上过程就是细化细化(Thinnin
23、g)。细化的结果是把曲线型物体变成一个像素宽的线型图。3.骨骼化 和细化相关的一个算子是骨骼化,也被称为中轴变换或火烧草场算法。中轴是和边界上至少两点相切的圆的圆心的轨迹。可以用火烧草场来说明,设物体区域上铺满了草料,火从物体边界同时均匀地烧起,最后草场全部烧光火熄灭的地方就是它的骨骼或骨架。中轴变换的火烧草场算法示意图 4.修剪 在很多情况下,细化或骨骼化过程会留下很多短刺,这些是有两三个像素点的分支。这些短刺是由于边界上的单个像素的摆动引起的。短刺可以用33的算子来移去端点,然后重新建立删去的分支。5.加厚 不把相近物体合并的膨胀过程称为加厚加厚(Thickening)。和细化过程一样,它
24、也可以分两步完成。和它互补的操作是对背景进行细化,任何一种腐蚀类的操作都伴随着膨胀类的操作作用与互补的图像区域上。一些分割技术使用非常紧凑的边界来包围物体来保证不出现物体的错误合并。通常,用来分割物体最好的边界总是太紧,给后续的测量带来困难。加厚操作可以对此进行修正,它增大边界而不合并物体。图像描述 对图像进行分割后,将图像分成了若干个区域,包括不同特征的物体和背景,其中可能包含某些形状,如长方形、圆、曲线及任意形状的区域。分割完成后,下一步就是用数据、符号、形式语言来表示这些具有不同特征的小区,这就是图像描述。以特征为基础进行区别或分类是计算机理解景物的基础。图像区域的描述可以分为对区域本身
25、的描述和区域之间的关系、结构进行描述。这些描述包括对线、曲线、区域、几何特征等各种形式的描述,是图像处理的基础技术。v 区域边界的描述 区域的描述往往依赖于边界的描述,离散图像的边界描述用连通的像素来表示,我们先看看连通的定义。像素的邻接和连通 相邻像素及编码定义定义 一个像素的4 4邻接邻接像素包括它的上下左右四个像素,如上图中的编码为0,2,4,6的四个像素。而8 8邻接邻接像素则为它的所有8个像素。(a)(b)(c)(d)邻接和连通:(a)4邻接;(b)8邻接;(c)八连通边界;(d)四连通边界 定义定义 像素集合P称为n-连通连通(n=4,8)区域,如果对于任意两个P中的像素p和q,满
26、足 1.p和q是n-邻接像素,或者2.存在P的子集合p1,p2,pk,pi和pi+1是n-邻接,i=1,k1。在上图中,(c)的阴影部分像素构成八连通边界,(d)的阴影部分像素构成四连通边界。有了连通和连通域的概念,才能对分割出的区域描述其边界。距离 距离是描述边界长度走向以及分割出的区域内图像像素之间关系的重要几何参数,也是相似性的重要测度。记d(x,y)为像素x和y之间的距离,它应该满足以下条件:1.当且仅当x=y时,d(x,y)0;2.d(x,y)d(y,x);3.),(),(),(zxdzydyxd满足这三个条件的距离有多种定义方法。v 设p1(x1,y1),p2(x2,y2)为图像中
27、的两像素,则几种常用的距离定义为:欧氏距离:22122121)()(),(yyxxppde街区距离:212121),(yyxxppdcb棋盘距离:212121,max),(yyxxppdch而切削距离和八角距离是对欧氏距离的逼近。(a)棋盘距离 (b)街区距离 (c)欧氏距离 不同的距离定义,其描述的区域大小、形状不同。如p为常数,满足d(p,x)t的x构成的区域 v 边界线的描述 设R为物体区域,其n-连通边界可以定义为R的非n-连通内部点,记边界为B(R),则:)(,)(RpNRppRB其中N(p)为p的n-邻接像素集合。区域边界一般用定向的相继各像素坐标来表示,比如左手方向的坐标序列,就
28、是视背景区域为平面,物体区域为建筑物,然后用左手接触建筑物前进,然后回到出发点。边界链码 以8-连通边界为例,边界链码从一个任意选择的边界点开始,这个点有八个相邻点,其中至少有一个是边界点。边界链码为从当前点到下一个边界点的相邻方向编码。这八个相邻方向可以0到7来表示。这样一个物体的边界便可以用一个起始点的坐标和一个方向编码的序列来表示。用边界链码来表示一个物体,我们就可以只用一个起始点的(x,y)坐标和每个边界点3-bit的存储量,程序可以一个记录来存贮一个物体的信息,这个记录包括物体的标识、周长(边界点数)以及边界链码。从边界链码还可以直接计算出物体的大小和形状特征等信息。用四连通或八连通
29、来表示边界,对有些边界就会有的误差,曲线的斜率并不只限于八个方向。要降低误差,可以增加离散图像的采用率。这种方法的极限情况就是用边界曲线的沿走向的长度l为横坐标,沿边界走向的每个瞬间与x轴的夹角为纵坐标的曲线描述法。边界链码是一个较为节省存储空间的方法是,这是因为物体由它的边界所定义,它的内点的坐标信息并不需要记录。边界链码还利用了物体边界是连通路径的事实。v 线条的描述 曲线的拟合 NiyxpPiii,1),(边界顺序点集 用下述多项式曲线来拟合这些边界点:nnxaxaxaaxy210)(并以平方差准则,即使下式平方误差最小2)(iixyy0ia令 可以得到n个方程的联立方程组,解得各个系数。此外还有B样条拟合