2016-04-27 2 views
0

Учитывая ВКИ изображения:Как создать VTKPolyData из VTKImageData (экстракция поверхности)?


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


который является 3D-изображения, которое содержит результат сегментации как двоичные данные (сегментированный объект = 1, фон = 0), Как я мог извлечь поверхность сегментированного объекта и сохранить его как VTKpolyData?

ответ

2

Минимальный рабочий пример будет примерно таким.

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(); 
+0

л folllowed шаги здесь (https://pyscience.wordpress.com/2014/09/11/surface-extraction-creating-a-mesh-from-pixel-data-using-python-and -vtk /) и получил тот же результат. В чем разница между ** vtkmarchingcubes ** и ** vtkdiscretemarchingcubes **? – Sonnenschein

+0

Когда дело доходит до 2-го изображения и многоугольника, вы можете обратиться к 'vtkMarchingSquares', который является 2-м маршевым кубом. –

1

Используйте класс vtkMarchingCubes. есть некоторые примеры here и here

Смежные вопросы