植物叶片脉络图像提取方法设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
植物叶片脉络图像提取方法设计
摘要
图像分割是根据某种图像特征的一致要求,将一幅图像分割为多个区域。它是图像理解和物体识别的第一步,也是一经典难题。随着科学技术的发展,它广泛的应用于各个领域。
植物叶片是植物的重要器官,是研究植物生长状况的重要依据,也是比较容易获得的研究素材。叶片脉络和形态是研究植物的重要出发点,叶片脉络的提取是实现完整的植物叶特征提取及无损植物叶特征提取中重要的一步。传统的植物形态数据测量方法主要是用尺测量叶片长度等手工方法,这种方法由于受人为、自然等因素的影响较多,导致测量精度差、测量结果不理想,基本上已经被淘汰。利用图像处理技术进行植物脉络提取,是随着计算机软、硬件技术及信息技术的进步而迅速发展起来的新兴研究领域。
本文介绍了两种利用图象分割技术提取叶片脉络的基本方法:分水岭法,二值化法。通过MATLAB进行了仿真实验,并将几种不同的分割算法结果进行了比较
关键词:图像分割,特征提取,分水岭算法, 二值化
一分水岭算法
1 分水岭算法综述
分水岭算法是新近发展起来的数学形态学图像分割方法。将这种方法用于图像处理是由S.Beuchre,F.Meyer 最早提出的。Beucher 和Vincent等人的研究工作使得分水岭算法的理论得以建立,并且大量用于灰度图像的分割。
分水岭算法的一个实例就是从太平洋到大西洋的一条水流把美国分为两个
区域。分水岭界限分开了这样的两个区域,被称为太平洋和大西洋的“集水盆地"。由于这些“集水盆地”的存在,相对应的,这两个大洋之间就有一些最小连接。
现在,在图像处理领域和数学形态学领域,数字图像经常被认为是拓扑框架。在给定图像的拓扑表示中,每个点的数字化值代表这个点的梯度值。这种表示非
常有用,首先,这样能够使研究者对于被研究图像的转换有一个更清晰的认识。另外,利用这种表示,一些概念比如极小区、集水盆地、分水岭等都可以在数字图像中更好的定义。
近年来分水岭算法在灰度图像分割算法的研究中受到重视。分水岭算法的主要应用是从背景中提取近乎一致的目标对象,那些在灰度级上变化较小的区域的梯度值也较小,而不同目标对象在相邻接触的灰度变化往往比区域内部像素间的差异要大得多,对应的梯度值也较大。因此,实际上分水岭算法与图像的梯度有更大的关系,而不是图像本身,一般以梯度图像作为参考图像进行分割。分水岭算法有多种实现方法,较典型的有基于标记的分水岭变换和欧氏距离应设法。
传统的分水岭方法模拟一个水浸入的过程。首先将图像像素的灰度看做高度,图像中不同灰度值的区域就对应于山峰和山谷盆地,盆地的边缘就是所谓的分水岭。分水岭的来历就是将一幅图像逐渐浸入一个湖中,图像的最低点先进水,然后水逐渐浸入整个山谷盆地。当水位到达盆地的边缘高度就将溢出,这时在水溢出处建立堤坝,如此直到整个图像沉入水中,所建立的堤坝就成为分开盆地的分水岭。图1演示了这种方法的工作原理。
图1 分水岭算法
假定图中的物体灰度值低,而背景的灰度值高。该图显示了沿扫描线的灰度分布,该线穿过两个靠的很近的物体。图像最初在一个灰度值上{基于分水岭算法的红外图像分割方法}二值化。灰度值把图像分割成正确数目的物体,但它们的边界偏向物体内部。随后阈值逐渐增加,每一次增加1个灰度级,物体的边界将随着阈值增加而扩展。当边界相互接触时,这些物体并没有合并。因此,初次接触的点变成了相邻物体间的最终边界。这个过程在阈值达到背景灰度级
之前终止,也就是说,在被恰当分割的物体的边界正确地确定时终止。 2 基本概念
设)(p f 为灰度级函数,p 为像素坐标,2Z ⊂Ω,Ω∈p 。
p 的相邻像素)('p N p ∈,距离函数为)',(p p dist (在4连通或8连通域中,对所有的邻域点,距离为1)。
定义1:较低斜坡
⎪⎪⎭⎫ ⎝⎛≤-∈∀=
)()'()',()'()()(')(max p f p f p p dist p f p f p N p p LS (1.1)
定义2::斜率最大的相邻点
⎭⎬⎫⎩⎨⎧<=-∈=
)()'(),()',()'()()(')(p f p f p LS p p dist p f p f p N p p NLS (1.2)
定义3:分水岭分割
如果每个区域最低处i m 有唯一的标记)(i m L ,称为分水岭分割。对于每一
φ≠)(p NLS 的Ω∈p ,则
)()(),('p L p L p NLS p =∈∃
(1.3) 定义4:集水盆
{})()()(i i m L p L p m C == (1.4)
3 分水岭算法的实现
通常分水岭算法的实现过程采用模拟淹没过程。首先,检测出局部的最低点,并用数字逐一标识出;接着,利用等级队列模拟淹没过程。这样的序列由H 个先进先出(FIFO)序列组成,每个序列有H 灰度级。第h 个FIFO 序列的图像中灰度级为h 的像素数。这个数据结构是用于存储进行处理的像素顺序。初始时1等级队列中为淹没的初始点。灰度级为h 的点进入队列的第h 个FIFO 队列。等级队列的灰度级由低到高。当这个点被淹没后,将它从队列中删除,并将它的标记传递给相邻的点;后一个点进入队列,直到所有的点被淹没,从而使各个区域正确
划分。
另外,A.Bieniek 提出了基于连接像素的有效的分水岭算法.对于像素点p ,它的相邻点NLS(p)的标识将作为此点处理的前提条件。然而,局部的最低点并没有斜率最大的相邻点。因此对于这些点,应采用另一种连接关系:最低点p 的所有邻域点中和p 点灰度值相同的点属于同一区域。因此,局部最小的位置应有这一区域中位置编码最小的点的位置号来代表。在处理过程中,除了输入图像之外,还应有图像来存储每个像素的标识。这里,用像素点的位置来标识各个区域。这个算法只需对图像进行\次扫描,就可完成分割。具体算法为
输入图像f ,输出图像l 。
1) 第1次扫描图像像素{p q p ←;for each )('(p N p ∈and ])[]'[p f p f < )(p N and )(]'[p f p f <
if ))(]'[(p f p f < 'p q ←;
if )(p q ≠ '][q p l ←;
else ←][p l PLATEAU ;}
2)第二次扫描图像像素P P L PLATEAU p l if p ←=][){][({;
for each )('(p N p prev ∈ and ][]'[p f p f =)
),(p l FIND r ←;)',('p l FIND r ←;)',min(]'[][r r r l r l ←←;}}
3)第3次扫描图像像素),(][{P L FIND p l p ←;}
FIND ){,(u l for u r ←(;])[,'][r l r r r l ←≠;
Return r ;}
在第3次扫描中,有较小的相邻点的像素p ,它的标记为)(P NLS q ∈。如果像素没有较小的相邻点,那么,这一点为局部最小点,记为PLATEAU 。在第2轮扫描中,计算每3个区域最小的标记。利用函数FIND ),(p l ,将区域最小的标记用这一区域最小点中最小的坐标值表示。在第3轮的扫描中,将所有的像素的标记用最小坐标值替代。这样,图像中的每一个点均满足定义3中有关分水岭分割