植物主要器官三维重建及系统实现
发布时间:2021-02-21 03:59
虚拟植物三维模型不仅可以用在影视制作、游戏场景构建等文化生活领域,也可用在植物学、农学等科研领域。植物器官作为植物的重要组成部分,也是重建虚拟植物模型的重要环节。在目前的植物器官建模方法中,针对叶片的建模方法逐渐由原来的从外部特征入手过渡到从植物的发生机理出发。近年来较为有效的方法,利用L系统模拟植物叶片的形态发生机理,仅通过改变参数就能生成出多种形态的植物叶片。但由于叶片形态发生机理的复杂性,这种方法只能得到二维形态的叶片模型。针对植物块状植物器官的建模方法中,由于其生长过程复杂,目前仍以基于点云的建模方法方式为主。相比于图像、激光等点云获取方式,Kinect提供了一种成本适中且精度相对较高的点云获取途径。但目前Kinect多用于形态特征明显的物体的重建过程。而针对植物块状器官这种体积较小,形状特征较为单一的物体的建模方法的研究相对较少,且已有的方法自动化程度较低。本文利用计算机图形以及机器视觉相关知识,研究了基于L系统的三维形态植物叶片建模方法,以及基于Kinect V2 RGB-D数据的植物块状器官点云建模方法,此外设计并实现了一套植物主要器官点云建模系统。本文主要工作如下:1....
【文章来源】:浙江工业大学浙江省
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
L系统建模结果[29]
浙江工业大学硕士学位论文10图2-1L系统建模结果[29]Figure2-1.Lsystemmodelingresults[29]从上文可以看出,L系统非常适合于植物拓扑结构的表达。此外为了表达复杂植物结构以及植物的生长过程,还有随机L系统[36]、参数化L系统[37]等针对L系统的扩展系统。2.vlabVirtualLaboratory(vlab)[38]是Przemyslaw等人开发的基于计算机图形学的对L系统和海龟几何学的跨平台的交互式软件系统实现。该系统提供了对象管理,模型预览,曲面编辑,代码编辑等众多功能。如图2-2所示。通过该系统可以使用L+C建模语言[39]设计实现L系统的规则和产生式,并得到图形化的模型。以此来构建和模拟三维植物模型。图2-2vlab系统界面截图Figure2-2.vlabsysteminterfacescreenshotL+C建模语言是对C++语言的扩展,包含了与L系统相对应的基本规则要素。同时从工程角度来讲,提供了模块等语法功能的实现,以实现对逻辑上代码块的封装和重用,图2-3使用L+C语言构建的百合花模型。
植物主要器官三维重建及系统实现11图2-3L+C语言构建的百合花模型[29]Figure2-3.lilymodelconstructedbyL+Clanguage[29]3.CGALCGAL(TheComputationalGeometryAlgorithmsLibrary)[40],是一个应用广泛的C++计算几何算法库,提供了很多计算几何算法的STL实现。本文中在叶表面的三维形态模拟方面使用到了CGAL。2.2用于点云建模过程的工具1.KinectV2SDKKinectV2SDK是微软为KinectV2提供的软件开发工具包,包含为C#和C++语言编写的应用程序接口(API)。KinectV2SDK包含深度数据模块、红外数据模块、RGB彩色数据模块、音频数据模块、坐标系统映射模块、面部识别与追踪模块、人体及姿势识别追踪模块、精细追踪模块等几大部分。本文中使用用于C++语言的API,并且主要使用了深度数据模块、红外数据模块、RGB彩色数据模块、坐标系统映射模块,用于从KinectV2中获取数据。KinectV2API本身采用基于面向对象思想的进行设计与实现。而深度数据,红外数据,RGB彩色数据均以视频流的形式提供。利用基于C++的API从KinectV2读取数据的基本流程如下:Step1:首先定义IKinectSensor类型的设备指针,只有使用GetDefaultKinectSensor()方法将指针指向硬件设备。Step2:调用IKinectSensor类的Open()打开启动设备Step3:定义数据源指针,包括深度数据源类型IDepthFrameSource,彩色数据源类型IColorFrameSource,红外数据源类型IInfraredFrameSource。调用IKinectSensor类提供的get_DepthFrameSource()方法将数据源指针指向相应的数据源。Step4:定义相应类型的数据源格式描述符指针,并调用相应的
本文编号:3043809
【文章来源】:浙江工业大学浙江省
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
L系统建模结果[29]
浙江工业大学硕士学位论文10图2-1L系统建模结果[29]Figure2-1.Lsystemmodelingresults[29]从上文可以看出,L系统非常适合于植物拓扑结构的表达。此外为了表达复杂植物结构以及植物的生长过程,还有随机L系统[36]、参数化L系统[37]等针对L系统的扩展系统。2.vlabVirtualLaboratory(vlab)[38]是Przemyslaw等人开发的基于计算机图形学的对L系统和海龟几何学的跨平台的交互式软件系统实现。该系统提供了对象管理,模型预览,曲面编辑,代码编辑等众多功能。如图2-2所示。通过该系统可以使用L+C建模语言[39]设计实现L系统的规则和产生式,并得到图形化的模型。以此来构建和模拟三维植物模型。图2-2vlab系统界面截图Figure2-2.vlabsysteminterfacescreenshotL+C建模语言是对C++语言的扩展,包含了与L系统相对应的基本规则要素。同时从工程角度来讲,提供了模块等语法功能的实现,以实现对逻辑上代码块的封装和重用,图2-3使用L+C语言构建的百合花模型。
植物主要器官三维重建及系统实现11图2-3L+C语言构建的百合花模型[29]Figure2-3.lilymodelconstructedbyL+Clanguage[29]3.CGALCGAL(TheComputationalGeometryAlgorithmsLibrary)[40],是一个应用广泛的C++计算几何算法库,提供了很多计算几何算法的STL实现。本文中在叶表面的三维形态模拟方面使用到了CGAL。2.2用于点云建模过程的工具1.KinectV2SDKKinectV2SDK是微软为KinectV2提供的软件开发工具包,包含为C#和C++语言编写的应用程序接口(API)。KinectV2SDK包含深度数据模块、红外数据模块、RGB彩色数据模块、音频数据模块、坐标系统映射模块、面部识别与追踪模块、人体及姿势识别追踪模块、精细追踪模块等几大部分。本文中使用用于C++语言的API,并且主要使用了深度数据模块、红外数据模块、RGB彩色数据模块、坐标系统映射模块,用于从KinectV2中获取数据。KinectV2API本身采用基于面向对象思想的进行设计与实现。而深度数据,红外数据,RGB彩色数据均以视频流的形式提供。利用基于C++的API从KinectV2读取数据的基本流程如下:Step1:首先定义IKinectSensor类型的设备指针,只有使用GetDefaultKinectSensor()方法将指针指向硬件设备。Step2:调用IKinectSensor类的Open()打开启动设备Step3:定义数据源指针,包括深度数据源类型IDepthFrameSource,彩色数据源类型IColorFrameSource,红外数据源类型IInfraredFrameSource。调用IKinectSensor类提供的get_DepthFrameSource()方法将数据源指针指向相应的数据源。Step4:定义相应类型的数据源格式描述符指针,并调用相应的
本文编号:3043809
本文链接:https://www.wllwen.com/projectlw/swxlw/3043809.html
教材专著