【发布时间】:2017-03-15 18:18:28
【问题描述】:
我有一个 3D 结构的 DICOM 文件,为了在我的结构中做一些更改,我使用 ImageJ 将 3D 结构转换为 stl 文件,然后使用 vtkreadstl 将其存储在 vtkpolydata 中,使用抽取算法我可以减少我的结构通过删除一些顶点和三角形,现在我想通过添加额外的顶点来做相反的事情,我可以使用哪个算法来做到这一点? 谢谢
【问题讨论】:
我有一个 3D 结构的 DICOM 文件,为了在我的结构中做一些更改,我使用 ImageJ 将 3D 结构转换为 stl 文件,然后使用 vtkreadstl 将其存储在 vtkpolydata 中,使用抽取算法我可以减少我的结构通过删除一些顶点和三角形,现在我想通过添加额外的顶点来做相反的事情,我可以使用哪个算法来做到这一点? 谢谢
【问题讨论】:
与抽取相反的是镶嵌或细分。 Tessellation 只是根据您决定使用的算法添加更多几何体,而细分点是使表面更平滑。
您想要使用哪一个取决于您添加额外顶点的具体目标。
查看 vtk,我看到有一个 vtkTessellatorFilter 和一个 vtkSimpleCellTessellator 如果您想对模型进行镶嵌,您可能会发现它们很有帮助。否则,如果您的目标是通过添加额外的几何图形来获得更平滑的表面,那么有很多不同的细分算法。看起来vtk有: vtkLinearSubdivisionFilter, vtkButterflySubdivisionFilter, vtkLoopSubdivisionFilter, vtkDataSetSurfaceFilter
【讨论】:
vtkTessellatorFilter tesla= new vtkTessellatorFilter(); tesla.SetInputData(input); tesla.Update(); 我的输入是 vtkpolydata跨度>