您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 三维重建算法研究和软件系统实现
三维重建算法研究和软件系统实现答辩人:徐淼华导师:赵振西教授专业:计算机软件与理论内容介绍绪论PACS系统,DICOM格式,三维重建的应用和研究内容,介绍本文工作三维重建算法表面重建、体重建软件系统实现实现中的具体问题、设计模式的应用总结和展望一、绪论PACS简介DICOM简介三维重建的应用三维重建的研究内容本文的工作1.1PACS简介含义PictureArchivingandcommunicationsystem功能优点国内外开发现状未来展望1.2DICOM标准含义DigitalImagingandcommunicationinMedicine发展历史信息模型E-R模型1.3三维重建的应用背景便于观察,从而方便诊断外科手术的计划和模拟放射治疗计划的制定教学帮助修复关节、设计和制作假肢1.4三维重建的研究内容数据预处理三维重建算法医学图象的分割模型的网格简化绘制与显示1.5论文主要工作功能完整的三维重建软件图象预处理MC算法构建表面几何模型以及模型的简化轮廓线编辑和轮廓线拼接三维模型的交互显示设计模式的应用MC算法的改进多轮廓线拼接问题的解决二、三维重建算法研究表面抽取算法基于体素的等值面重建MC算法MT算法剖分立方体算法断层轮廓拼接体重建基于图像空间基于物体空间基于频域空间2.1MarchingCubes算法算法原理二义性问题解决二义性算法改进2.1.1MC算法原理1.确定包含等值面的体元flag(i,j,k)=0(1)28=256→15种情况(i,j,k)(i+1,j,k)(i+1,j+1,k)(i+1,j+1,k+1)(i,j+1,k+1)(i,j,k+1)(i,j+1,k)(i+1,j,k+1)体元状态表(1byte)v1v2v6v7v8v4v5v3v1v2v3v4v5v6v7v82.1.1MC算法原理2.求等值面与体元边界的交点(线性插值)3.求等值面的法向(梯度矢量)①中心差分求体元各角点处的梯度②体元边界上采用线性插值求交点梯度③三角面片采用Gourand模型绘制zffzGradyffyGradxffxGradzyxzyxzyxzyxzyxzyxkjikjikjikjikjikji2)1,,()1,,(_2),1,(),1,(_2),,1(),,1(_2.1.2MC算法的二义性(a)连接方式二义性的二维表示(b)连接方式二义性的三维表示2.1.2MC算法的二义性拓扑不一致造成孔隙2.1.3消除二义性074061074052zaazaayzaazaax+++--++---xyzazxayzaxyazayaxaazyxf76543210),,(2.1.4算法改进改进尝试一:改线性插值为取中点。(失败)2.1.4算法改进改进方法二扫描:假设三角形面片的顶点只能落在立方体体元边界中点和体元中心点,因为生成的形状个数是有限的合并:因为方向取值有限,考虑法向后只有26种情况,所以非常适合合并。合并的过程是:先合并成大的多边形,然后重新划分成三角形插值:通过线性插值计算出最后所得的三角形面片的顶点坐标以及法向量。扫描:合并插值:和MC算法相同2.2轮廓拼接单轮廓拼接凸、单轮廓线拼接全局搜索策略启发式算法最短对角线最大体积、轮廓线渐进非凸单轮廓线拼接多轮廓线拼接最短对角线法非凸单轮廓线拼接多轮廓线拼接连接的困难形体重构转化成体数据中等值面构造体数据的构造场函数判断轮廓线内外的方法--扫描线算法表面生成MC算法三、三维重建软件的设计与实现DICOM网关高分辨率图像的显示方法轮廓线编辑封装OpenGL程序类图设计模式的使用3.1DICOM网关3.2高分辨率数据的显示方法CT数据格式窗宽窗位调低窗宽窗位调高窗宽窗位3.3轮廓线编辑MultiPoly3dPoly2DerrorRangeimageWidthimageSrcupdateLayer()UpdateAllLayer()setErrorRange()setImageWidth()setImageSrc()MultiPoly3d()Draw()3.4封装OpenGL我们调用Renwindow的函数来请求显示三维模型,Renwindow设置一些相应的窗口属性,然后调用Renderer的相关函数Renderer负责转换世界坐标系、视点坐标系和屏幕坐标系,通过设置视点位置、光源和调用Actor的函数来实现把几何模型转换成图像的功能。Actor是渲染场景中的一项条目,根据对应的属性做适当设置后,调用PolydataMapper的相关函数。PolydataMapper负责解释三维模型中的点如何解释成为OpenGL基本命令里面的参数,几乎所有的OpenGL函数都出现在这个类中。3.5程序类图CSingleImageViewCMultiImageViewCMy3dView3.6设计模式的使用Singleton模式Command模式Strategy模式Adapter模式Singleton模式--代码示例ClassSingleton{public:Singleton*Instance();protected:Singleton();Private:staticSingleton*_Instance;}Singleton::_Instance=0;Singleton*Singleton::Instance(){If(_Instance==0){_Instance=newSingleton;}return_Instance;}使用Singleton::Instance()来访问实例Singleton模式--效果原来的代码使用singleton模式后的代码全局变量MultiPoly3d*Poly3d;boolIsPoly3dExist=false;不需要每次要使用实例的地方(注意程序中会出现多处,所以代码简化非常有用)MultiPoly3d*nowVisit;if(IsPoly3dExist)nowVisit=Poly3d;elsenowVisit=newMultiPoly3d();nowVisit-CallFun.....MultiPoly3d::Instance()-CallFun…Command模式四、工作总结和展望成功开发了医学影像三维重建软件My3d既支持自动得到重建模型又允许用户的介入允许用户在图像精度和运算时间间进行取舍功能完整,操作方便化简MC算法重构得到的三角面片解决了多轮廓线拼接的困难四、工作总结和展望模拟手术交互技术模型剖分和手术开窗图像分割的准确性场函数的选择谢谢!
本文标题:三维重建算法研究和软件系统实现
链接地址:https://www.777doc.com/doc-3742229 .html