植物叶片病斑渲染方法转让专利

申请号 : CN201210227153.0

文献号 : CN102867325B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵春江郭新宇苗腾陆声链杜建军

申请人 : 北京农业信息技术研究中心

摘要 :

本发明涉及计算机图形学、实时真实感绘制、植物行为仿真相结合的领域,公开了一种植物叶片病斑渲染方法,包括以下步骤:S1、生成细胞纹理,根据所生成的细胞纹理模拟植物叶片表面的病斑动态空间信息,所述病斑动态空间信息包括三个方面的信息:病斑的分布、病斑的运动方式、病斑最终形成的形态;S2、利用shell模型进行病菌扩散过程中叶片表观变化的模拟,从而实现病斑的渲染。本发明能够实现植物叶片病斑渲染,对病菌扩散过程中叶片的表观变化进行真实的模拟。

权利要求 :

1.一种植物叶片病斑渲染方法,其特征在于,基于如下假设:病菌在叶片表面进行生长繁衍是存在竞争的,且病菌均匀地散布在叶片的表面,所述病菌为白粉病病菌;

病菌浸染叶片是由初始的附着位置向四周逐步扩散的;

对于同种叶片上的病菌,病菌在叶片留下的病斑形态呈现一定的相似性;

所述方法包括以下步骤:

S1、生成细胞纹理,根据所生成的细胞纹理模拟植物叶片表面的病斑动态空间信息,所述病斑动态空间信息包括三个方面的信息:病斑的分布、病斑的运动方式、病斑最终形成的形态;

S2、利用Shell模型进行病菌扩散过程中叶片表观变化的模拟,从而实现病斑的渲染。

2.如权利要求1所述的方法,其特征在于,步骤S1中生成细胞纹理具体包括步骤:S11、在二维图像内生成一定数目的特征点;

S12、通过遍历所述二维图像内的每一个像素值,计算每一个像素值与特征点之间的距离,并计算每个像素点的颜色值,从而得到细胞的纹理特征,每个细胞单元的颜色分布表示病菌向四周扩散的运动过程。

3.如权利要求1所述的方法,其特征在于,所述特征点服从泊松分布。

4.如权利要求2所述的方法,其特征在于,步骤S1中模拟植物叶片表面的病斑动态空间信息时,根据计算得到的颜色值构建病害发生强度函数:a-x

Density=1-b

其中,b表示病菌扩散速度,a表示病情程度,x为像素点的颜 色值,a的取值范围为

0~1。

5.如权利要求4所述的方法,其特征在于,步骤S2具体包括:S21、删除透明的像素点,其中所述透明的像素点为小于所述病害发生强度函数的值的像素点;

S22、应用perlin噪声对所述病害发生强度函数对像素点进行扰动,并将病斑位置的像素点删除;

S23、对于步骤S21、S22处理之后的叶片,将叶片的老化颜色与叶片的漫反射颜色进行加权,从而模拟病菌扩散过程中叶片表观的变化,所述加权的权重根据病害发生强度函数的值得到。

6.如权利要求5所述的方法,其特征在于,步骤S21中在片元着色器中利用discard函数将所述透明的像素点删除。

7.如权利要求1所述的方法,其特征在于,所述Shell模型将叶片分为15层。

说明书 :

植物叶片病斑渲染方法

技术领域

[0001] 本发明涉及计算机图形学、实时真实感绘制、植物行为仿真相结合的领域,具体涉及一种植物叶片病斑渲染方法。

背景技术

[0002] 近几年,随着农业信息化技术的不断发展,三维动画逐渐成为农业知识科普和技术培训的一项重要手段。面向农业的三维动画,不仅需要具有逼真的视觉效果,同时还需正确地展现农业知识,因此,如何将三维视觉效果与农业知识进行缜密的结合就成为了一种亟待解决的问题。科普培训动画主要为农民展示农业生产中的基础知识、常见问题以及专业技术方法。其中,病虫害是农业生产中非常常见的一种生理现象,然而目前没有一种较好的方法可以真实地模拟病虫害的发生过程以及其影响下叶片表观的变化情况,所以描述病虫害条件下植物叶片表观变化成为农业领域亟需的应用。
[0003] 经过多年的发展,叶片渲染方面的研究取得了一定的进展。Hanrahan等以一维光线传输为基础,构建了多层表面模型[1]来模拟叶片的次表面散射,该模型可以借助蒙特卡罗积分估算出叶片的BRDF以及BTDF,并首次将次表面散射引入了计算机图形学领域。Wang等提出了一种实时的叶片渲染算法[2],该方法在LEAFMODEL模型的基础上推导出一个参数模型来计算叶片的BRDF以及BTDF,并通过采集真实叶片的空间BRDF及BTDF数据,对参数模型中的参数进行拟合,使其更符合真实叶片的表观;为了获得全局光照的效果,Wang等扩展了PRT算法,不仅能够模拟低频的环境光效果,同时也可以模拟在高频阳光下的光影效果,Wang的方法[2]在获得较真实效果的同时,在运行的效率上也达到了实时性。FRANZKE等将叶片抽象为半无穷平板结构,利用偶极子的方法计算叶片的BSSRDF,并且根据采集到的表观纹理,通过光线追踪算法对叶片的表观进行渲染[3],得到了较真实的效果。Ralf Habel等利用多偶机子的方法,将叶片看作是薄板结构,首次将BSSRDF引入到叶片的透射模拟,同时为了达到实时的效果,引入了Half Life 2基函数,并通过对图像卷积进行加速[4]。
[0004] 目前的研究中(如文献[1~4])有关叶片表观真实感绘制的研究大部分集中在正常状态下的表观质感建模,并且多为固定时刻的叶片表观模拟。但植物叶片的表观会在病虫害因素下产生显著的变化,在叶片表面会出现颜色的变化或者空洞,并且有些病菌还会在叶片表面积累形成霉层(如白粉病),同时整个过程是一个动态的过程,这些表观的特点都是现有方法难以模拟的。
[0005] 以上提到的文献如下:
[0006] [1]Hanrahan P,Krueger W.Reflection from layered surfaces due to subsurface scattering:Proceedings of the 20th annual conference on Computer graphics and interactive techniques,Anaheim,CA,1993[C].ACM.
[0007] [2]Wang L,Wang W,Dorsey J,et al.Real-time rendering of plant leaves:SIGGRAPH'06,New York,NY,USA,2006[C].ACM.
[0008] [3]Franzke O,Deussen O.Rendering plant leavesfaithfully:SIGGRAPH'03,New York,NY,USA,2003[C].ACM.
[0009] [4]Habel R,Kusternig A,Wimmer M.Physically Based Real-Time Translucency for Leaves.Kautz J,Pattanaik S.EurographicsAssociation,2007253-263.

发明内容

[0010] (一)要解决的技术问题
[0011] 本发明要解决的技术问题是:克服现有技术不能模拟病虫害条件下叶片表观的缺点,实现植物叶片病斑渲染,对病菌扩散过程中叶片的表观变化进行真实的模拟。
[0012] (二)技术方案
[0013] 为了解决上述技术问题,本发明提供一种植物叶片病斑渲染方法,包括以下步骤:
[0014] S1、生成细胞纹理,根据所生成的细胞纹理模拟植物叶片表面的病斑动态空间信息,所述病斑动态空间信息包括三个方面的信息:病斑的分布、病斑的运动方式、病斑最终形成的形态;
[0015] S2、利用shell模型进行病菌扩散过程中叶片表观变化的模拟,从而实现病斑的渲染。
[0016] 优选地,步骤S1中生成细胞纹理具体包括步骤:
[0017] S11、在二维图像内生成一定数目的特征点;
[0018] S12、通过遍历所述二维图像内的每一个像素值,计算每一个像素值与特征点之间的距离,并计算每个像素点的颜色值,从而得到细胞的纹理特征,每个细胞单元的颜色分布表示病菌向四周扩散的运动过程。
[0019] 优选地,所述特征点服从泊松分布。
[0020] 优选地,步骤S1中模拟植物叶片表面的病斑动态空间信息时,根据计算得到的颜色值构建病害发生强度函数:
[0021] Density=1-ba-x
[0022] 其中,b表示病菌扩散扩散速度,a表示病情程度,x为像素点的颜色值。
[0023] 优选地,步骤S2具体包括:
[0024] S21、删除小于所述病害发生强度函数的值的透明的像素点;
[0025] S22、应用perlin噪声对所述病害发生强度函数对像素点进行扰动,并将病斑位置的像素点删除;
[0026] S23、对于步骤S21、S22处理之后的叶片,将叶片的老化颜色与叶片的漫反射颜色进行加权,从而模拟病菌扩散过程中叶片表观的变化,所述加权的权重根据病害发生强度函数的值得到。
[0027] 优选地,步骤S21中在片元着色器中利用discard函数将所述透明的像素点删除。
[0028] 优选地,所使用的Shell模型将叶片分为15层。
[0029] 优选的,所述病菌为白粉病病菌,且基于如下假设执行步骤S1和S2:
[0030] 病菌在叶片表面进行生长繁衍是存在竞争的,且病菌均匀地散布在叶片的表面;
[0031] 病菌浸染叶片是由初始的附着位置向四周逐步扩散的;
[0032] 对于同种叶片上的病菌,病菌在叶片留下的病斑形态呈现一定的相似性。
[0033] (三)有益效果
[0034] 上述技术方案具有如下优点:实现植物叶片病斑渲染,对病菌扩散过程中叶片的表观变化进行真实的模拟。

附图说明

[0035] 图1是本发明实施例的方法流程图;
[0036] 图2是不同计算公式计算得到的细胞纹理样式;
[0037] 图3是Pthreshold为0.2、0.3、0.5时,病斑厚度的表观变化;
[0038] 图4为DNThreshold在0.2,0.5,0.7下的病斑表观;
[0039] 图5为随着病斑的变化,叶片颜色的变化效果;
[0040] 图6为不同a值下白粉病表观模拟图;
[0041] 图7为不同白粉病病情下,茄子植株的叶片表观模拟图;
[0042] 图8是Dnthreshold设置得较小时,叶锈病下叶片的变黄情况结果图;
[0043] 图9为茄子叶片发生虫害之后虫洞扩散的效果图。

具体实施方式

[0044] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0045] 参考图1所示,以白粉病为例,对本发明实施例的病斑渲染方法进行介绍。
[0046] S1、基于细胞纹理的病斑动态空间信息模拟
[0047] 本发明将白粉病的病斑动态空间信息分为三个方面:病斑的分布、病斑的运动方式、病斑最终形成的形态。对于以上三个方面的病斑空间信息分别做出一些简单的假设:
[0048] 病斑的分布:
[0049] A、白粉病病菌,其在叶片表面进行生长繁衍是存在竞争的,所以为了寻求最大程度的叶片资源,病菌会均匀地散布在叶片的表面;
[0050] B、病斑的运动方式:
[0051] 病菌浸染叶片,是由初始的附着位置向四周逐步扩散的(即不会出现位置的跳跃现象)。
[0052] C、病斑的形态:
[0053] 对于同种叶片上的白粉病菌,其在叶片留下的病斑形态会呈现一定的相似性(如黄瓜上大致成椭圆形)。
[0054] 在以上三种假设下,提出了基于细胞纹理的白粉病的病斑空间信息表达方法,通过细胞纹理,可以对病害在叶片表面的空间动态过程进行模拟。细胞纹理的生成方法分为两个阶段,S11、是在二维图像内生成一定数目的特征点,对于特征点的分布本发明选取泊松分布,这样做的目的是为了使其符合本发明中对病斑均匀分布的空间信息假设。S12,通过遍历每一个像素值,计算其与特征点之间的距离,并进行颜色计算,该步骤S11、S12的伪代码如下:
[0055]
[0056]
[0057] 替换伪代码中的颜色计算公式,可以进行其他变换,从而得到不同类别的纹理特征,如图2所示。
[0058] 图2是不同计算公式下的细胞纹理样式。对于(a),distBuffer(x,y)=F1*F1;对于(b),distBuffer(x,y)=F2-F1。
[0059] 从图2中可以看到,细胞纹理的样式与前文空间运动假设具有很多类似的特征:首先,细胞纹理的特征点是利用泊松分布在平面上进行撒点的,对于这些特征点可以看作是生长在叶片的初始病菌体位置(均匀地散布在叶片表面);其次,细胞单元区域内由特征点位置向边缘位置的颜色变化是连续的,所以可以将每个细胞单元的颜色分布看作是病菌向四周扩散的运动过程(由特征点所在的位置向单元边缘扩散);最后,细胞单元区域都会形成类似的图案,可以进行病斑等形态的描述。
[0060] 因为细胞纹理自身的性质,所以可以非常简单地利用纹理的颜色值进行运动模拟。将纹理的颜色值看作是病斑的运动次序表示,假设特征点的颜色值为1.0,则在其细胞单元内的其他部分的颜色值都会小于1.0,并且随距离逐步递减。所以,可以根据颜色值构建病害发生强度函数Density,该函数表示病情发生强度,函数值越大病斑扩散的范围越广,其公式如下:
[0061] Density=1-ba-x (1)
[0062] 其中,b表示扩散速度(可控),a表示病情程度,a的取值范围为0~1,取值越大表示病害程度越高,x为像素点的颜色值。为了增加病斑空间属性的随机性,在实际中对细胞纹理的值进行一定的扰动,扰动参数为fmix,通过GLSL代码可以清晰地看出扰动的方法,代码如下:
[0063]
[0064] 本发明采用的病斑纹理映射方式较简单,首先计算叶片模型的OBB盒,然后将纹理映射到第一主成分向量和第二主成分向量所在的平面中。
[0065] S2.白粉病表观渲染
[0066] 白粉病会在叶片表面形成霉层,并且厚度不一,通常情况下,初始发病的位置会随着病情的加重逐渐加厚,而边缘的霉层则相对较薄。本发明采用Shell模型对白粉病的层次结构进行建模。Shell实际上是一层层的水平切片的堆积体,每一层都根据细胞纹理进行病斑的绘制,当层数逐渐积累就可以出现具有厚度的层次感了。本发明利用15个pass(即15层)用于病斑的渲染,以使得最终的病斑结果能够更加精细,在绘制病斑前,通过1个pass来绘制出叶片的表观,并根据alpha值进行混合。对于病斑的Shell渲染,需要考虑的问题有以下几点:
[0067] A:病斑像素的透明度问题。病斑所在位置的信息是在细胞纹理上表达的,然而,在病斑扩散的过程中,不是所有细胞纹理中的像素都属于病斑,有些像素是不可见的,为此,需要将这些像素设置为透明。然而,不能采用传统shell渲染的方法,在固定纹理的alpha通道设置每个像素的alpha值,这样只适合那些位置不变的物体(如毛发等),不能描述病斑扩散这样的过程(透明的像素是一直在变化的)。为此,利用式(1)中计算的病害发生强度函数density去控制像素的透明情况,当小于density的值,认为是透明的像素,本方法在处理完全透明像素时,直接在片元着色器中利用discard函数将该像素删除。
[0068] B:病斑的厚度控制问题。Shell渲染方法将切片按不同高度罗列在一起,为了生成任意模型表面的病斑,本发明将切片沿多边形的法向量方向进行递增,代码如列表1。在实际中,白粉病的厚度是均匀不一的,假设其厚度是随着积累的时间逐渐增加的,所以会呈现中心位置偏厚,而边缘偏薄的特点。可以采用病害发生强度函数density去控制病斑的厚度,实现的方法可以有两种,一种是在顶点着色器端,根据细胞纹理计算density然后控制实际的偏移量,但是这种方法需要支持vertex texture的显卡硬件,所以在实际中本发明采用了在片元着色端进行处理的方法,通过density的值控制病斑的高度,将渲染的pass数传入到片元端,pass数越大,表示当前像素在几何空间的高度越高,所以,只需在渲染到较大pass时,将边缘位置(density较小的部位)删除即可,在实际中通过如列表3-1中的片元着色器代码进行控制,其中pass_index为当前的pass数,pass_num为总的pass数量,Pthreshold为用户的控制参数,当Pthreshold越大时,表示厚度差距越大,当Pthreshold=0.0时,表示病斑区域的厚度是相等的。图3为Pthreshold在0.2、0.3、0.5时,病斑厚度的表观变化。
[0069] 列表1:病斑厚度控制着色器代码:
[0070]
[0071] C:病斑的颗粒感特性。白粉病的病斑很多时候具有明显的颗粒感,并且并未将整个叶片全部盖住,尤其是在病斑厚度较薄的部位具有缝隙,为此,本发明应用perlin噪声对病害发生强度函数density进行扰动,按一定的规则将病斑位置的像素删除,这样便可得到相应的缝隙,实际中,可在片元着色器通过如下代码进行实现:
[0072] If(pow(density,0.3)*(noise)
[0073] 其中,DNThreshold为用户的控制参量,值越大表示缝隙越大,当DNThreshold=1.0时,所有的病斑像素全部删除,当DNThreshold=0.0时,所有病斑像素全部保留,表示不存在缝隙。图4为DNThreshold在0.2,0.5,0.7下的病斑表观。
[0074] D:表观变化。病斑覆盖部位以及病斑周边部位的叶片由于被白粉遮挡,经常接受不到阳光,会出现发黄的表观变化。为了模拟这种现象,本发明将老化颜色AgeColor(r,g,b)与叶片的漫反射颜色进行加权,而加权的权重由density值进行控制,公式如下。
[0075] finaldiffuseLeaf=(density)*AgeColor*diffuseLeaf+(1-density)*diffuseLe af
[0076] 其 中,AgeColor 为 老 化 的 颜 色,diffuseLeaf 为 叶 片 的 漫 反 射 颜色,finaldiffuseLeaf为衰老之后叶片的漫反射颜色。图5为随着病斑的变化,叶片颜色的变化效果。
[0077] E:病斑的反射属性。本发明利用BRDF来表示病斑的反射属性,公式如下:
[0078]
[0079] 其中ρd为漫反射颜色,σs为散射系数,d为病斑厚度,θi为入射光角度,θr为反射光角度。
[0080] 图6为不同a值下白粉病表观模拟(其他参数分别为Dthreshold=0.0,DNthreshold=0.44,PThreshold=0.47)。图7为不同白粉病病情下,茄子植株的叶片表观模拟,其中模型有14万个三角面片,渲染速度为28帧/秒。本发明除了可以模拟白粉病,对于覆盖在叶表的其他病害也可以进行模拟,如小麦的叶锈病,但在实际操作中,需要稍作修改,首先,在模拟叶锈病时需要增加shell的增进量,使得病斑相对于白粉病的病斑厚度更大;对于Dnthreshold我们设置的较小,因为叶锈病的空隙非常小;同时,叶锈病下叶片的变黄情况基本上是覆盖整个叶片,结果如图8。本发明的空间分布及运动方法不仅可以对白粉病进行模拟,对虫洞同样适用,仍然可得到非常逼真的效果。我们不再通过shell模型进行绘制,而是直接根据density值对叶片的像素进行取舍,从而得到动态的虫洞扩散效果,如图9为茄子叶片发生虫害之后虫洞扩散的效果。
[0081] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。