基于Snake模型的植物叶片面积计算方法

2013-09-29 05:20王静文
计算机工程 2013年1期
关键词:角点轮廓梯度

王静文,刘 弘

(山东师范大学 a.信息科学与工程学院;b.山东省分布式计算机软件新技术重点实验室,济南 250014)

1 概述

叶片是植物进行光合作用、合成有机物质的主要器官,它的生长规律对光能利用、干物质积累等起着显著作用。面积作为叶片的主要生物学特征之一,与其他的一些特征,如周长、圆形度、弯曲能等一起影响植物生长发育等生命活动[1],因此,如何精确地测量叶片面积日益引起科学工作者的密切关注。结合计算机图像处理技术,自动准确地提取叶片面积,避免了传统方法费时、费力的缺点,已经成为当今的一个研究热点。利用叶片图像和Image J测定叶片面积[2]是目前生物学研究中使用比较广泛的一种方法,但该方法人工干预较多,影响了工作效率;计算之前需要对图像进行灰度化处理,一定程度上影响了测量精度。

通过图像处理提取目标轮廓时,一般先将彩色图像转换成灰度图像,再使用相应算法提取轮廓。但彩色图像中大约有 10%的边缘在灰度图像中是检测不到的[3],一般做法将会舍弃图像中大量的有用信息;并且在彩色图像灰度化时,阴影颜色较黑,会归为叶片区域。当前用于提取目标轮廓的一种主流模型是由文献[4]提出的 Snake,即主动轮廓模型。Snake模型在边缘检测、图像分割中已经有了广泛的应用和很大的发展。然而,传统Snake模型主要针对灰度图像进行处理,它的外部函数不能区分相同灰度的不同颜色,用传统Snake模型来处理彩色图像会造成错误。

本文提出对标本叶片彩色图像直接处理从而计算面积,去掉转化为灰度图像的中间环节,以提高计算精度。该方法首先提取叶片轮廓,然后构造轮廓的链码表,根据链码计算叶片面积。在提取叶片轮廓时,结合叶片图像的特点,改进Snake的初值设置方案和外部能量函数。针对传统Snake模型存在的处理彩色图像失真的问题,定义一种颜色梯度代替灰度梯度作为外部能量函数,与文献[5]中定义的颜色梯度相比,本文定义的颜色梯度降低了计算复杂度,提高了效率;针对传统Snake模型设置初值时需要人工操作、比较繁琐的问题,提出一种初值设置方案,在角点作为初始轮廓顶点的基础上通过自适应增加或减少顶点得到接近叶片真实轮廓的初值。

2 基本原理

2.1 Snake模型

Snake模型的基本思想是将目标轮廓的提取问题转化为在图像中寻找一定条件下封闭曲线能量泛函最小的问题。Snake模型的数学描述是寻找一条连续封闭曲线,使式(1)目标函数最小:

实现 Snake模型有 2个步骤:(1)轮廓初始化;(2)通过最小化能量函数使得轮廓演化并收敛到合适的形状和位置。

2.2 Harris角点算子

本文在设置Snake模型的初值时,为更好地逼近真实轮廓,采用基于目标的角点设置Snake初始轮廓的方法。

其中,Ix为x方向的梯度;Iy为y方向的梯度;G(s)为高斯模板;⊗为卷积操作;det为矩阵的行列式;tr为矩阵的迹;k为经验值,一般取0.04~0.06,本文中取k=0.04。若某点的R处于邻域最大,且大于阈值R0时,判断该点为角点。

3 叶片面积计算方法

本文在计算叶片面积时,首先利用改进Snake模型提取出标本叶片的轮廓,然后构造轮廓的8方向链码表,最后计算叶片面积。

3.1 改进的Snake模型

3.1.1 初值设置方案

基于图像目标的角点设置Snake模型的初值,首先提取图像目标的角点,在 HSI空间的亮度分量I中利用Harris算子提取角点,因为彩色图像的亮度信息I一定程度上反映了图像各部分之间的明暗对比情况;然后将角点作为 Snake初始轮廓的顶点,并且根据自适应算法增加或减少顶点;最后将连接顶点的多边形作为 Snake的初始轮廓,如图1所示。

图1 Snake初值设置

由于已经有一部分顶点在初始轮廓上,非常接近真实轮廓,因此Snake模型只需向内搜索能量极小点,既减少了计算量,又克服了Snake模型易收敛至局部极小值的缺陷。其中,自适应增加、减少顶点的算法如下:

(1)增加顶点:当2个相邻角点的连线在轮廓内侧时(如图 1(a)所示),分别求出过这 2点的切线,将这2条切线的交点作为新增的顶点。叶片轮廓是不规则曲线,因此,不能用一般方法求过角点的切线。在角点的5×5邻域内用B样条曲线拟合,从而求出过角点的切线。在图 1(b)中,新增加的顶点为 P1、P2、P3、P4。

(2)减少顶点:当2个相邻顶点的距离小于预定的门限时,用它们的中间点代替这2个顶点。

判断顶点 Pi( x, y)邻域的凹凸性的方法如下:

定义曲线的正向为沿边界运动时,包围区域在其 左 侧 。 设 ▽x1=xi− xi−1, ▽x2= xi+1− xi, ▽y1=yi−yi−1, ▽y2= yi+1−yi, φ=▽ x1▽ y2− ▽ x2▽ y1, 若φ< 0,则 Pi的邻域为凹区域;若φ>0,则 Pi的邻域为凸区域;φ=0,则Pi−1、iP、Pi+1共线。

3.1.2 颜色梯度的求解

本文采用颜色梯度来代替灰度梯度作为Snake的外部能量函数。像素点的灰度梯度值反映了该像素点与邻域像素点的灰度差别,目标或背景内部灰度分布比较均匀,因而梯度值普遍较小。而在边缘处,即目标与背景相交的部分,梯度值较大。设函数f(x, y)表示图像中坐标为(x, y)的像素点的灰度值。对于函数f(x, y),在其坐标(x, y)上的梯度定义为一个二维向量[9]:

泰勒级数分析表明对相邻点进行差分处理可以用来估算点的一阶导数,其误差为O(Δx)。因此,在图像处理中,常用差分代替微分,并利用小区域模板和图像卷积来近似计算梯度值。对Gx和Gy可以采用不同的模板计算,采用Roberts模板计算梯度为:

与灰度梯度的原理类似,颜色梯度是彩色图像中颜色变化的一阶导数,因此可以用相邻像素颜色的差分来近似。首先,定义HSI颜色空间中的颜色距离。在 HSI颜色空间中,亮度分量与图像的彩色信息无关;色度分量与饱和度分量和人感受彩色的方式紧密相连,对于区分不同的颜色非常有用,并且色度分量和饱和度分量是相关的。HSI空间中的欧式几何距离如图2所示。

图2 HSI空间中的欧式几何距离

在圆形彩色平面上,角度H是色度分量与红色轴之间的夹角,S值是每个像素的饱和度的大小。假设2个像素的亮度分量相等,那么这两个像素的色度差,可以通过平面几何的余弦定理求得:

因此,在HSI颜色空间中两点的欧氏距离为:

然后,采用Sobel边缘检测算子[10]进行差分计算,设轮廓线上第i个像素iP坐标为(x, y),其颜色梯度为▽ G( x, y),向量 Cx,y=(Ix,y,Sx,y,Hx,y)为像素(x, y)的 HSI颜 色 向量 , Cx–1,y=Cx–1,y–1+2Cx–1,y+Cx–1,y+1 , Cx+1,y=Cx+1,y–1+2Cx+1,y+Cx+1,y+1,则像素 iP的颜色梯度的水平分量▽x为Cx–1,y和 Cx+1,y的加权欧式距离:

同理可得颜色梯度的垂直分量▽y,则颜色梯度▽G( x, y)有如下定义:

最后,用▽G( x, y)代替灰度梯度作为Snake的外部能量函数,即:

采用 Williams和 Shah[11]提出的贪心算法实现Snake模型,该算法的轮廓最优化过程是一个迭代求解的过程,通过对轮廓点周围的局部近邻进行检索选取具有更小Snake模型能量的新轮廓,从而对Snake模型进行演变。用改进的Snake模型提取标本叶片轮廓,由图3可知,改进的Snake模型排除了阴影区域,保留了原来叶片图像的细节,比传统模型提取的轮廓更加精确,保证了接下来计算叶片面积的准确性。

图3 提取的叶片边缘比较

3.2 叶片面积计算

为了提高面积计算的精确度,本文使用8方向链码(如图4所示)计算叶片面积。

图4 8方向链码

通过改进Snake模型得到叶片轮廓后,构造叶片轮廓的8方向链码表,算法描述如下:

(1)找到一起始点(i, j),以其为中心点依次搜索(i+1, j),(i+1, j+1)…找到目标点后即停止本次搜索,取得第一个链码数字,该目标点设置为下一中心点。

(2)设中心点为(x,y),依次搜索(x+1,y),(x+1,y+1)…找到目标点后判断其是否为上一点,如果是则继续搜索;如果不是,则判断其是否为起点(i, j),如果不是则停止本次搜索,取得链码数字,把该像素设置为下一个中心像素,继续执行(2);如果是起始点,则结束全部搜索,然后返回链码表。

得到链码表后,使用类似数学上定积分求面积的方式,分别求 2段边界对 y轴所围的面积的和(根据边界的方向有正负)。设屏幕左上角为坐标原点,起点坐标为(x0,y0),第k段链码终端的y坐标为:

其中,εi是第i个码元。

(4)采用该方法计算拟南芥一个株系的叶片(如图5所示)的像素面积,结果如表1所示。

图5 标本叶片图像

表1 叶片的像素面积

图像由若干网格状排列的像素组成。如果图像中每个像素所代表的实际面积和像素总数已知,那么,两者之积就是图像的实际面积。其中,每个像素的实际面积可以通过在同等条件下拍摄的已知面积的参照物获得,参照物要求实际面积精确,即:

综上,本文算法流程如图6所示。

图6 算法流程

4 实验与结果分析

系统配置:CPU为Intel Core2 Duo, 2.20 GHz,RAM为2 GB;操作系统为中文Windows XP,基本开发环境是VS2003。

对于一组标本叶片图像,首先采用本文的算法计算出像素面积,然后根据3.2节中式(7)得到叶片的实际面积,对图5中的叶片进行上述处理,得到如表2所示的数据。

表2 不同算法的实验结果对比 mm2

将本文的计算结果和Image J的统计结果分别与实际测量结果作对比,本文计算结果与实际测量值的相似度为99.99%,Image J计算结果与实际测量值的相似度为 99.97%,可以验证本算法更接近于实际测量值。与Image J相比本文的算法更精确,并且人工干预更少。本文算法不需对图像进行灰度化处理,而Image J需要图像灰度化和手工设置阈值等操作,对于批量处理,比较繁琐。

5 结束语

本文改进Snake模型的初值设置方案,提出一种颜色梯度,将Snake模型更好地应用于彩色目标轮廓提取。在得到叶片轮廓链码表的基础上对叶片面积进行计算,并对结果进行严格的准确性验证。准确提取叶片参数是为了更好地服务于叶片建模,因此,下一步工作是研究基于叶片的表型特征构造植物三维叶片模型。

[1]陈爱军.基于图像处理的植物叶片参数的测量[J].东北林业大学学报, 2009, 37(4): 46-47.

[2]O’Neal M E, Landis D A, Isaacs R.An Inexpensive,Accurate Method for Measuring Leaf Area and Defoliation Through Digital Image Analysis[J].Journal of Economic Entomology, 2002, 95(6): 1190-1194.

[3]孙慧贤, 张玉华, 罗飞路.基于 HSI颜色空间的彩色边缘检测方法研究[J].光学技术, 2009, 35(2): 221-224.

[4]Kass M, Witkin A, Terzopoulos D.Snake: Active Contour Models[J].International Journal of Computer Vision, 1988,1(4): 321-331.

[5]李书达, 张新荣.应用 Snake模型提取彩色图象目标轮廓线的研究[J].中国图象图形学报, 2003, 8(11): 1266-1271.

[6]王洪元, 周则明, 王平安, 等.一种改进Snake模型的边缘检测算法[J].南京理工大学学报, 2003, 27(4): 395-399.

[7]王 剑, 王敬东, 李 鹏.一种基于主动轮廓模型的自适应模板更新算法[J].光电子技术, 2009, 29(1): 42-46.

[8]王长元, 赵亚亭.一种基于 Harris和图像对比度的角点检测方法[J].计算机与数字工程, 2011, 39(10): 174-175.

[9]于天虎, 毛兴鹏, 王国谦, 等.一种基于灰度的梯度边界检测优化算法[J].计算机应用研究, 2010, 27(1): 361-364.

[10]李灿灿, 孙长辉, 王 静, 等.基于改进Sobel算子和色调信息的叶脉提取方法[J].农业工程学报, 2011, 27(7):196-199.

[11]Nixon M S, Aguada A S.特征提取与图像处理[M].李实英, 杨高波, 译.2版.北京: 电子工业出版社, 2011.

猜你喜欢
角点轮廓梯度
一个改进的WYL型三项共轭梯度法
OPENCV轮廓识别研究与实践
一种自适应Dai-Liao共轭梯度法
基于实时轮廓误差估算的数控系统轮廓控制
一类扭积形式的梯度近Ricci孤立子
基于FAST角点检测算法上对Y型与X型角点的检测
高速公路主动发光轮廓标应用方案设计探讨
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
地温梯度判定地热异常的探讨