本文共 669 字,大约阅读时间需要 2 分钟。
VTK中基于面绘制实现三维重建,使用的是经典的Marching Cubes(移动立方体法)算法。
面绘制是采用分割技术对一系列的二维图像进行轮廓识别、提取等操作,最终还原出被检测物体的三维模型,并以表面的方式显示出来。 面绘制的数据流管道pipeline结构为: 读取器->提取等值面->数据处理->映射器->实例化角色->绘制器->绘制窗口->交互器->交换方式。Marching Cubes算法简介: 首先,假定原始数据是离散的三维空间规则数据场; 其次,给出所求等值面的值; 最后,找出等值面经过的体元位置,求出该体元内的等值面并计算出相关参数(以便由常用的图形软件包或图形硬件提供的面绘制功能绘制等值面)。VTK提供了两种提取等值面的类: (1) vtkContourFilter (2) vtkMarchingCubes. VTK通过vtkPolyDataNormals在等值面上产生法向量;通过vtkStripper在等值面上产生纹理或三角面片。VTK中基于体绘制实现三维重建,使用的是光线投射法(Ray-casting)。
体绘制的原理和面绘制完全不相同。面绘制需要生成中间图元,而体绘制则是直接在原图上进行绘制,内容需求较面绘制小。每切换一个视角需要重新对所有的像素点进行颜色和透明度计算,需要时间比面绘制长。转载于:https://blog.51cto.com/weiyuqingcheng/2113888