一、等值面提取
vtk等值面提取函数有:
vtkContourFilter、vtkMarchingContourFilter、vtkMachingCubes、vtkImageMarchingCubes、vtkMarchingSquares、vtkDiscreteMarchingCubes。
都是基于MarchingCube算法来实现的。其中,vtkDiscreteMarchingCubes继承至vtkMachingCubes,主要用于Label图像的等值面提取,可以用于医学图像标注图像的等值面提取。vtkMarchingContourFilter可以接受任意类型数据,内部根据不同数据类型生成不同的等值线或者等值面,vtkContourFilter是更加通用的等值面提取类,可以接受任意类型数据。
二、点云重建
包括vtkDelaunay2D、vtkDelaunay3D和vtkSurfaceReconstructionFilter+vtkContourFilter
三、PolyData平滑
有vtkWindowedSincPolyDataFilter、vtkSmoothPolyDataFilter,可以设置多次平滑,但是比较耗时。平滑后面片可能增多。
四、网络细化
网络细化有vtkLinearSubdivisionFilter、vtkLoopSubdivisionFilter、vtkButterflySubdivisionFilter。
vtkLinearSubdivisionFilter实现了一种线性细分算法,比较快,但是细分后不能产生光滑的模型。vtkLoopSubdivisionFilter实现了Loop算法,能够产生光滑模型
vtkButterflySubdivisionFilter实现了蝶形细化方法
可以通过设置SetNumberOfSubdivisions()来控制细分次数,每次细分后三角面片数增加4倍。
五、PolyData连通域处理
vtkPolyDataConnectivityFilter
六、PolyData分割
vtkImplicitPolyDataDistance可以用于用PolyData分割另一个PolyData
七、网络抽取
抽取方法有三种:vtkDecimatePro、vtkQuadricDecimation和vtkQuadricClustering。其中最常用的是vtkDecimatePro。主要设置参数:SetTargeReduction(),用于设置抽取率,越高代表抽取越多网络。
另外,vtkBinnedDecimation可用于三角网格减少,也可用于网络抽取。
八、选择PolyData并生成标量