给定一个vtk图像:



vtkSmartPointer<vtkImageData> VTKImage = vtkSmartPointer<vtkImageData>::New();



这是一个包含分割结果作为二进制数据的3D图像(分割的对象= 1,背景= 0),
如何提取分割对象的表面并将其另存为VTKpolyData?

最佳答案

一个最小的工作示例就是这样。

vtkSmartPointer<vtkMarchingCubes> surface =
vtkSmartPointer<vtkMarchingCubes>::New();

#if VTK_MAJOR_VERSION <= 5
surface->SetInput(volume);
#else
surface->SetInputData(volume);
#endif
surface->SetValue(0, 0.5);
surface->Update();

vtkSmartPointer<vtkPolyData> poly = vtkSmartPointer<vtkPolyData>::New();
poly = surface->GetOutput();

09-06 11:24