- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VTK中的三维标量数据重构三维实体类: 图6.14 基本三角片构造对象表面 图6.15 有向图G 6.2.1 圆柱体三角片表面 图6.16 可接受表面与可接受子图 图6.17 凸集和凹集的分解 图6.18 体积最大法 图6.19 最短对角线法 图6.20 异常的锥体连接情况 图6.21 正规比映射 图6.22 Cook方法 图6.23 不规则区域 图6.24 相关性模型方法 6.3 连续表面重构 图6.25 轮廓面表示 图6.26 B样条曲线拟合轮廓线 图6.27 多边形链的内部和外部 6.4 面向体的重构 图6.28 三种Delaunay三角化的四面体 图6.29 删去的外部四面体 图6.30 边的判定 图6.31 非实体连接 图6.32 附加控制点的选择 图6.33 变形网格 小结 三维断层扫描数据场是最简单的三维标量场,等高线等可看成三维断层数据进行处理。三维断层重构过程分为拓扑重构和几何重构两部分。 拓扑重构采用嵌套树表示断层上轮廓线的相对位置,用分类图表示层间轮廓线的拓扑关系.枚举算法列出了所有有效的分类图,采用轮廓线的相似性和相对位置等约束来排除大量无意义的分类图,以推导出正确的分类图。 几何重构有面向曲面的重构和面向体的重构。 面向曲面的重构中最常用的是三角片表面重构,对应拓扑重构的四种基本分叉,有四种基本表面段的表面重构:极值点、圆柱、独立分叉和连通分叉。由于两相邻断层轮廓线间的表面重构等同于有向图G中寻找一条从(0,0)到(m-1,n-1)的路经。 利用放样技术生成具有C2连续的表面重构算法。 面向体的重构有Delaunay四面体重构和正六面体空间。 vtkVoxelContoursToSurfaceFilter vtkSliceCubes vtkSurfaceReconstructionFilter vtkPowerCrustSurfaceReconstruction vtkDelaunay3D 例子 vtkDelaunay3D 输入离散点集(位于实体表面),输出实体的多边形表示 sphere = vtk.vtkPointSource() sphere.SetNumberOfPoints(40) delny = vtk.vtkDelaunay3D() delny.SetInput(sphere.GetOutput()) delny.SetTolerance(0.01) mapper = vtk.vtkDataSetMapper() mapper.SetInput(delny.GetOutput()) triangulation = vtk.vtkActor() triangulation.SetMapper(mapper) 例子 vtkSurfaceReconstructionFilter 输入离散点集(位于实体表面),输出实体的多边形表示 surf = vtk.vtkSurfaceReconstructionFilter() surf.SetInput(pointSource.GetPolyDataOutput()) cf = vtk.vtkContourFilter() cf.SetInput(surf.GetOutput()) cf.SetValue(0, 0.0) reverse = vtk.vtkReverseSense() reverse.SetInput(cf.GetOutput()) reverse.ReverseCellsOn() reverse.ReverseNormalsOn() map = vtk.vtkPolyDataMapper() map.SetInput(reverse.GetOutput()) map.ScalarVisibilityOff() 例子 vtkSliceCubes: v16 = vtkVolume16Reader() v16.SetDataDimensions(64,64) v16.SetDataByteOrderToLittleEndian() v16.SetFilePrefix(quarter) v16.SetDataSpacing(3.2,3.2,1.5) v16.SetImageRange(30,50) v16.SetDataMask(0x7fff) mcubes = vtkSliceCubes() mcubes.SetReader(v16) mcubes.SetValue(1150) mcubes.SetFileName(fullHead.tri) mcubes.SetLimitsF
文档评论(0)