matlab图像处理——距离变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V ol. , No Month year.
卷 第 期 年 月
距离变换的应用(选自陆宗骐的论文)
粘连区域的分割需要解决的问题有两个,即在何处分割以及如何进行分割。
文献[4]介绍了一种较为简单、直观的粘连区域分割方法——等值线跟踪法。
此方法对二值图象作距离变换,根据局部极大的特点搜索区域核心代替极限腐蚀,用等值线跟踪代替条件膨胀,利用跟踪过程中前后两次周长的跃变发现两区域合并的时间,从而确定分割点的位置,最后用作区域连接段骨架垂线的方法进行粘连部分的分割。
此方法不仅处理速度快,所得分割区域的形状也大为改观,见图1(d)。
当然,确定分割点也并非一定要采用等值线跟踪才行。
也可根据粘连区域连接段象素的特点,设计相应的分析算法不经跟踪直接寻得。
本文在完成了一幅存在粘连的钢筋端面图象分割的基础上,总结得出若干分割原则。
限于篇幅,本文只介绍象素属性分析法中分割位置的搜索算法,后续分割部分参见文献[4]。
2 术语定义
2.1 三个检测环
为了识别象素的属性,需要考察该象素所在邻域内相关象素的状态,本分割方法中需使用三个检测环。
它们是以当前待测象素为中心的3×3、5×5
点,见图2。
它们分别称为内环、中环与外环。
图中,中心象素用星号表示,内环用数字1~8表示,中环用小写字母a~p 表示,外环用大写字母A~Z 和数字1~6表示。
主要用以测试环上数据的跳变,以及数值的大小关系与某类象素数目的多少等。
2.2 象素类型
为行文方便起见,对不同类型的象素与数据定
义若干专用名词。
·边界点:图象中距离值为1的点。
·背景点:图象中距离值为0的点。
·(粘连区域)连接线:连接粘连两区域的(单点宽或双点宽)骨架,它们应取同一距离值。
·当前点:处于邻域中央,考察其是否在连接线上的那个象素。
·等值点:指在检测邻域内数值等于当前点的距离值的那些象素,连接线上的点必须是等值点。
·内点、外点:指在检测邻域内距离值分别大于、小于当前点的距离值的那些象素。
·角点:内环上只有两个与当前点等值的点,并且它们构成直角三角形时,称当前点为角点。
·图象的最大距离值:全图象素中最大的距离值,它大致等于图象中最大区域的等效半径。
图3给出了三个检测点及其所在邻域的例子,图中数据为象素的距离值。
为清楚起见,图中中心象素加粗后再加下划线,中环象素用粗体字表示。
在图3(a)中, 带下划线的7为当前点,中环上面水平线上的两个7为等值点,其间的8为内点,当前点周围的5、6为外点,而此时当前点7是一个角点。
3 分割点的特征
骨架上。
同时由于涉及区域间的连通关系,与象素的拓扑特性也有关。
这样便与图象处理中的一些基本概念联系了起来。
其中,骨架、梯度和距离值的跳变数等概念在本判别中起着关键的作用,本节先对这些基本概念作一些说明。
3.1 距离图象的骨架
距离图象有一个很好的特点,即其上的等值线绝大部分是单点宽的,它们层层嵌套排列很有规律,每层的距离值相差1,内大外小。
只有在区域核心部位与骨架上才有少量双点宽短线,如图3(b)中数值为2的象素为双点宽骨架。
距离图象的骨架在数值上大都取所在邻域的极大值。
3.2 中环梯度
因为距离图象上的骨架不仅仅分布在区域的瓶颈部位,区域内部也有不少。
对于单点宽骨架而言,若处于瓶颈部位时,其上象素的中环处前后左右接近对称,即该处的梯度值会比内部骨架处小些。
梯度值的计算,即求中环上下边界与左右边界平均差分的绝对值之和,再设置阈值予以区分。
图3中三个点的梯度值分别为10、7、8。
显然,图3 (a)不在连接线上,而(b)、(c)则在连接线上。
3.3 正跳变数
在图象细化处理中跳变数是一个非常重要的概念,它是指当前点所在的邻域中一个围绕中心象素的封闭曲线上0与1之间的跳变数,用于表示该点的拓扑特性,确定该点在细化时是否可以删除,如图4(a)中中心象素周围0至1的跳变数为3,表示中心处的直线有三个分支。
由于是二值图象,正、负跳变数相等,不用区分。
对于距离图情况稍有不同。
因为它不是二值图象,正跳变是指由邻域中心点数值向上的跳变,见图4(b)。
距离图中距离值内大外小,正跳变指向内部,负跳变指向外部,故正、负跳变数有不
同的含义。
现
在关心的是与
内部的联系。
所以,在分割
点的判别中需
要的是正跳
变,图4(b)中
的两图正跳变
都为2。
3.4 连接线象素的类型的象素分成三种类型,即双
连点、单连点与中连点[4],见图5。
图中当前象素用1表示,图中的其他1为等值点,2为内点,0为外点。
由图可见,双连点连接两个区域,它直接可作分割点用;单连点是连接线的端点,它与其中一个区域内部相连,还需要通过线条跟踪寻找另一个端点;中连点处于连接线上但并不与区域直接相连,故需要寻找连接线段的两个端点。
除了第一种情况外,后两种情况下,需要再根据连接线段的端点确定实际分割点。
在以它们为中心的3×3邻域中,它们分别有2、1、0个内点。
其中,双连点的邻域中的两个内点不能相邻接,见图5(a)。
不失一般性,当当前象素的距离值为N时,图5中的数据同时增加N-1,分类情况不变。
4 识别算法
由于文献[4]已解决了得到连接线上一个点后寻找整条连接线,进而确定实际分割点位置,最后将两个粘连区域切割开的问题。
本文仅介绍寻找粘连区域连接线上的象素的方法。
由于每条连接线上只需寻出一个点即可。
因此,所设条件是充分条件并非必要条件,为了便于将不符合条件的点剔除,这些条件有时也把连接线上的许多点筛选掉了。
条件的选择以便于处理,能得到可供使用的点,并且无有害遗漏为标准。
由于边界点的情况与内点有所不同,两者的识别分别进行。
4.1 边界上连接线象素的识别
⑴中环正跳变数必须为2,此为首要条件。
⑵第二条件——内环正跳变数分三种情况:
①正跳变数为2时即为分割点,此为类型1。
此点与所连两区域直接邻接。
②正跳变数为1时,内环边界点数应大于4,此为类型2。
其目的是使内环中不至混入太多背景点。
③正跳变数为0时,中环背景点数应小于7,此为类型3。
其目的是为了保证当前象素保持在粘连区域的瓶颈部位。
图6给出了这三类边界线分割点的例子。
上方为粘连区域图象,分割点在图象中央,下面数据为
陆宗骐,傅江桃: 根据像素属性确定粘连区域分割位置 3 所在邻域内象素的距离值。
1000000 0012345 0000122
4.2 内点中连接线象素的识别
⑴中环梯度必须小于规定阈值,此为首要条
件。
阈值分为两种情况:
①通常情况下中环梯度应小于8。
②内环正跳变数为2时,阈值可放宽1,即中
环梯度应小于9。
⑵第二条件——内环正跳变数分两种情况:
①正跳变数为2时即为分割点,此为类型4。
此点与所连两区域直接邻接。
②正跳变数非2时,内环上内点数应小于2(即
只能为0和1)。
此时又可分成两种情况:
•内环上等值点数非0非2时即为分割点,此为
类型5。
•内环上等值点数为2,当前点又不是角点,此
为类型6。
这时,加上作为当前点的中间象素,则
在内环的3×3邻域中它们应构成一条单点宽的短
线,它处于连接线的中段,故不能是角点。
⑶对于类型5与类型6的象素,外环上还必须
至少有一个内点。
用以割断图象中长的细线毛刺,
使区域边界更为光滑。
⑷为了避免把区域拦腰切开,分割点的距离值
需小于图象中最大距离值的一半。
图7给出了这三类分割点的例子。
图7(a)中的
分割点连接两个象素值为3的象素所在的区域。
图
7(b)中的分割点为连接段的一个起点,它连接左上
角象素值为6的象素所在的区域,在右下角即将与
另一区域相连。
图7(c) 中的分割点为连接段中间的
一个点,其左面可与象素值为5的象素所在的区域
相连接,连接线在右面还将延续下去。
4.3 后续处理
找出了以上各类分割点之后,根据不同情况确
定两区域间的连接线,进而确定实际的分割点,再
作分割两区域的分割线,具体分割步骤见文献[4]。
5543222 3221111
用以上算法实现了一幅粘连严重的钢筋图象的
完全分割,见图8。
分割所得轮廓非常光滑,远比
采用数学形态学方法
处理结果为好。
图象
分辨率为658×532,
图象的最大距离值为
17。
图中共有140根
钢筋,分成54个连通
区域,只有28根钢筋
无粘连,其中最大的
一个连通区域有15
根钢筋,有16处粘
连。
本文所介绍的方法是对一幅钢筋图象实现分割
后总结得出的。
因此,其适用范围还有很大的限制。
在应用于其他场合、不同类型图象时需作相应的调
整。
新的算法只有在得到广泛应用的条件下,才有
可能总结得出更加完备、可靠的识别方法。