第七章 图像分割(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R
0层
R1
R2 R41 R42
R1 R2 R3 R4
1层
R3
R43 R44
2层
R41 R42 R43 R44
7.4 基于区域的分割 区域分裂和合并
如果仅仅允许使用分裂,最后有可能出现相邻的两个 区域,具有相同的性质,但并没有合成一体的情况。 为解决这个问题,在每次分裂后,允许其后继续分裂 或合并。这里合并只合并那些相邻且合并后组成的新 区域满足逻辑谓词P的区域。也就是说,如果能满足条 件P(Ri∪Rj)=TRUE,则将Ri和Rj合并。
7.4 基于区域的分割 区域分裂和合并
分裂合并算法步骤:
(1)对任一区域Ri,如果P(Ri)=FALSE, 就将其分裂成不重叠的四等分 (2)对相邻的两个区域Ri和Rj(它们可以大小不同,即不在同一层), 如果条件P(Ri∪Rj)=TRUE,就将它们合并 (3)如果进一步的分裂或合并都不可能,则结束
7.4 基于区域的分割 区域分裂和合并
Matlab实现:
四叉树分解:
S = qtdecomp(I) 如果一个区域内图像像素灰度不相等就分裂。如果S(k,m) 非零, 则 (k,m) is 分解区域的左上角(起始点), 区域的大小为 S(k,m)的值.
S = qtdecomp(I, threshold)
7.5 分水岭分割算法

wenku.baidu.com
计算分水线的方法:


距离变换:将距离作为拓扑图形成盆地及 山峰 梯度法:将图像梯度特征作为拓扑图 标记符法:内部区域和外部区域标记后作 为拓扑图
7.5 分水岭分割算法

距离变换 二值图像的距离变换:每一个像素到最近非 零像素的距离。 值为1的像素距离变换为0。

7.5 分水岭分割算法
(1)任何的灰度级图像都可以被看做是一个地形图
7.5 分水岭分割算法
(2)假设我们在每个区域最小值位置地方打个洞,让水以均匀的速 度上升,从低到高淹没整个地形.当处在不同的汇聚盆地中的水将 要聚合在一起时,修建大坝将阻止聚合,最后得到的水坝边界就是 分水岭的分割线.
7.5 分水岭分割算法
7.4 基于区域的分割 区域分裂和合并
Matlab实现:
要得到四叉树分解中实际四分区域的像素值,需要以下函数:
[vals, r, c] = qtgetblk(I, S, dim) [vals, idx] = qtgetblk(I, S, dim) vals:四叉树分解中尺寸为dim*dim大小的块的值; r和c为块的左上角的行列坐标; S:为qtdecomp返回的稀疏矩阵; I:输入图像。
数字图像处理
主讲人:杜宏博
第七章 图像分割
7.1 点、线和边缘检测 7.2 Hough变换 7.3 阈值分割 7.4 基于区域的分割 7.5 分水岭分割算法
7.4 基于区域的分割
区域分割


区域生长: 基于区域内灰度分布统计性质 基于区域形状 区域分裂合并
7.4 基于区域的分割
区域增长
7.5 分水岭分割算法
距离变换函数:
区域的边缘信息来 决定是否对区域进 行合并或分裂
16
基于灰度 统计特性
7.4 基于区域的分割 区域分裂和合并
利用图像四叉树表达方式的简单分裂合并算法
设R代表整个正方形图像区域,P代表逻辑谓词。从最高层开始,把R连 续分裂成越来越小的1/4的正方形子区域Ri,并且始终使P(Ri)=TRUE.也 就是说,如果P(R) =FALSE,那么就将图像分成四等分。如果 P(Ri)=FALSE,那么就将Ri分成四等分,如此类推,直到Ri为单个象素。
7.4 基于区域的分割
区域增长
♥ 基于区域灰度差的生长
Step1:对图像进行逐行扫描,找出尚没有归属的象素 Step2:以该象素为中心检查它的邻域象素,即将邻域中的象素逐个与它比
较,如果灰度差小于预先确定的阈值,将它们合并
Step3:以新合并的象素为中心,返回到步骤2,检查新象素的邻域,直到 区域不能进一步扩张
区域2 区域1 (a)
区域1
区域2
(b)
7.4 基于区域的分割
区域增长
♥ 基于区域内灰度分布统计性质
Step1:把图像分成互不重叠的小区域;
Step2:比较邻接区域的累积灰度直方图,根据灰度分布的相似性进行区 域合并; Step3:设定终止准则,通过反复进行步骤2中的操作将各个区域依次合 并,直到终止准则满足。 灰度分布相似性的检测方法: h1(z)、h2(z)分别为两邻接区域的累积灰度直方图 (1)Kolmogorov-Smirnov检测: (2)Smoothed-Difference检测: max|h1(z)-h2(z)| z
Step4:返回到步骤1,继续扫描直到不能发现没有归属的象素,则结束整
个生长过程。
7.4 基于区域的分割
区域增长
♥ 基于区域灰度差的生长 存在的问题:
这种方法简单,但由于仅考虑了从一个象素到另一个象素的特性是否 相似,因此对于有噪声的或复杂的图像,使用这种方法会引起不希望 的区域出现。另外,如果区域间边缘的灰度变化很平缓,如图a所示, 或者对比度弱的两个相交区域,如图b所示,采用这种方法,区域1和 区域2将会合并起来,从而产生错误。
如果一个区域的最大值与最小值之差大于阈值,则分裂.阈值大小范围 为0~1.
7.4 基于区域的分割 区域分裂和合并
Matlab实现:
要得到四叉树分解中实际四分区域的像素值,需要以下函数:
[vals, r, c] = qtgetblk(I, S, dim) [vals, idx] = qtgetblk(I, S, dim) vals:四叉树分解中尺寸为dim*dim大小的块的值; r和c为块的左上角的行列坐标; S:为qtdecomp返回的稀疏矩阵; I:输入图像。
L/min{P1,P2}>T1
2. 把图像分割成灰度固定的区域,设两邻域区域的共同边界长度 为B,把两区域共同边界线两侧灰度差小于给定阈值得那部分长 度设为L,如果满足下面条件(T2为阈值),则两区域合并。
L/B>T2
7.4 基于区域的分割
区域增长
♥ 基于区域形状
两种方法的区别: 第一种是合并两邻接区域的共同边界中对比度较低部分占整个区域边 界份额较大的区域。 第二种是合并两邻接区域的共同边界中对比度较低部分 占共同边界份 额较大的区域。
7.4 基于区域的分割
区域增长
♥ 基于区域形状
在决定对区域的合并时,也可以利用对目标形状的检测结果,常用的 方法有两种:
1.
把图像分割成灰度固定的区域,设两邻接区域的周长分别为P1 和P2,把两区域共同的边界线两侧灰度差小于给定阈值的那部 分长度设为L,若满足下面条件(T1为阈值),则两区域合并。
C (Mi )表示与局部最小值Mi相联系的汇水盆地内点的集合
表示位于平面g(x,y)=n下方的点的集合
表示第n阶段汇水盆地i中点的集合
表示第n阶段汇水盆地被水淹没部分的集合 所有汇水盆地的集合
初始化:
C[min 1] T[min 1]
递归: 根据C[n 1]求得C[n]
遇到新的最小值时,符合条件(a),将q并入C[n-1]构成C[n]; q位于某些局部最小值构成的汇水盆地时,符合条件(b),将q并入C[n-1]构成C[n]; 当遇到分离全部或部分汇水盆地时,符合条件(c),在q处建立水坝。
7.4 基于区域的分割
区域增长
♥ 区域增长的matlab实现
clear;close all; clc;
I = imread('Fig1014(a)(defective_weld).tif'); subplot(221);imshow (I,[]);title('original image'); [G, NR, SI, TI] = regiongrow(I, 255, 0.26*255); subplot(222);imshow (SI,[]);title('seed image'); subplot(223);imshow (TI,[]);title('threshold image'); subplot(224);imshow (G,[]);title('segmented image');
7.4 基于区域的分割
区域增长
♥ 区域增长的matlab实现
7.4 基于区域的分割 区域分裂和合并
生长方法-先从单个种子象素开始通过不断接纳新象素,最 后得到整个区域 另外一种分割的想法-先从整幅图像开始通过不断分裂,得 到各个区域(在实际中,先将图像分成任意大小且不重叠的 区域,然后再合并或分裂这些区域,以满足分割的要求), 在这类方法中,常根据图像的统计特性设定图像区域属性的 一致性测度
∑|h1(z)-h2(z)| z 如果检测结果小于某个给定的阈值,则将两区域合并
7.4 基于区域的分割
区域增长
♥ 基于区域内灰度分布统计性质 特点:
小区域的尺寸对结果可能有较大的影响,尺寸太小时检测可靠性 降低,尺寸太大时则得到的区域形状不理想,小的目标也可能漏 掉
K-S检测和S-D检测方法在检测直方图相似性方面较优,因为它 考虑了所有灰度值

定义:区域生长是把图像分割成特征相似的若干小区域,比较相邻小区 域的特征,若相似则合并为同一区域,如此进行直到不能合并为止,最
后生成特征不同的各区域。也称为区域扩张法。

方法步骤: 选择合适的种子点 确定相似性准则(生长准则)
确定生长停止条件
7.4 基于区域的分割
区域增长
1 1 0 2 2 0 0 1 0 2 4 4 5 5 5 7 7 5 6 6 5 7 5 5 4 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 2 2 1 1 1 1 2 5 5 5 5 5 7 7 5 5 5 5 7 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(a)
(b)
(c)
(d)
(a)给出需要分割的图像,设已知两个种子象素(标为深浅不同的灰色方块), 现在进行区域生长 采用的判断准则是:如果所考虑的象素与种子象素灰度值差的绝对值小于某 个门限T,则将该象素包括进种子象素所在的区域 图(b)给出T=3时区域生长的结果,整幅图被较好的分成2个区域 图(c)给出T=1时区域生长的结果,有些象素无法判定
7.4 基于区域的分割 区域分裂和合并 Example:
(a) (b) (c) (d)
图中红色区域为目标,其它区域为背景,它们都具有常数灰度值 对整个图像R,P(R)=FALSE,(P(R)=TRUE代表在R中的所有象素都具有相 同的灰度值 ),所以先将其分裂成如图(a)所示的四个正方形区域,由于左上 角区域满足P,所以不必继续分裂,其它三个区域继续分裂而得到(b),此时 除包括目标下部的两个子区域外,其它区域都可分别按目标和背景合并。对 下面的两个子区域继续分裂可得到( c),因为此时所有区域都已满足P ,所以 最后一次合并可得到(d)的分割结果
图(d)给出T=6时区域生长的结果,整幅图都被分成1个区域。
7.4 基于区域的分割
区域增长
• 生长准则 区域生长的一个关键是选择合适的生长或相似准则,大部 分区域生长准则使用图像的局部性质。 生长准则可根据不同原则制定,而使用不同的生长准则, 将会影响区域生长的过程。
基于区域灰度差
主要介绍3种基本的生长准则和方法 基于区域内灰度 分布统计性质 基于区域形状
算法步骤:
定义变量
C (Mi )表示与局部最小值Mi相联系的汇水盆地内点的集合
7.5 分水岭分割算法
算法步骤:
定义变量
表示位于平面 g (s, t ) n 下方所有点的集合。
表示第n阶段汇水盆地i中点的集合 表示第n阶段汇水盆地被水淹没部分的集合 所有汇水盆地的集合
7.5 分水岭分割算法
定 义 变 量
7.4 基于区域的分割
区域增长
♥ 区域增长的matlab实现
[G, NR, SI, TI] = regiongrow(F, S, T). F:被分割的图像 S:种子点图像或者一个标量(灰度值,所有具有这个灰度的像素 都被记为种子点) T:阈值数组或者标量,确定相似准则。 G:输出的分割图像 NR:输出的区域个数 SI:种子点图像 TI:阈值测试图像
相关文档
最新文档