我现在正在使用vtk制作函数。过程如下:
我需要一些有关将vtkVolume写入stl数据的功能。如何将vtkvolume数据保存到stl文件?
我的以下代码:-
vtkDICOMImageReader *reader = vtkDICOMImageReader::New();
reader->SetDirectoryName("Dicom_Series");
reader->Update();
vtkPiecewiseFunction* opacitytransfer = vtkPiecewiseFunction::New();
opacitytransfer->AddPoint(-700, 0.0);
opacitytransfer->AddPoint(-101, 0.0);
opacitytransfer->ClampingOff();
vtkColorTransferFunction* colortranster = vtkColorTransferFunction::New();
colortranster->AddRGBPoint(-700, 0.0, 0.0, 0.0);
colortranster->AddRGBPoint(-101, 54.0 / 255.0, 154.0 / 255.0, 254.0 / 255.0);
colortranster->AddRGBPoint(-100, 237.0 / 255.0, 204.0 / 255.0, 159.0 / 255.0);
colortranster->ClampingOff();
vtkVolumeProperty* volumeproperty = vtkVolumeProperty::New();
volumeproperty->SetColor(colortranster);
volumeproperty->SetScalarOpacity(opacitytransfer);
volumeproperty->ShadeOn();
vtkFixedPointVolumeRayCastMapper* volumeMapper = vtkFixedPointVolumeRayCastMapper::New();
volumeMapper->SetInputConnection(reader->GetOutputPort());
vtkVolume* volume1 = vtkVolume::New();
volume1->SetMapper(volumeMapper);
volume1->SetProperty(volumeproperty);
vtkRenderer* aRenderer = vtkRenderer::New();
aRenderer->AddVolume(volume1);
aRenderer->SetBackground(0, 0, 0);
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(aRenderer);
renWin->SetSize(600, 600);
renWin->Render();
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
iren->Initialize();
iren->Start();
我现在正在使用vtk制作函数。过程如下:加载dicom系列,我们只能看到vtk Piecewise函数中有部分值。写stl文件,我需要一些关于...的功能...
您不能将卷映像写为STL文件。 STL是表面网格格式,其数据类型与图像完全不同。您需要从体积中提取等值面。为此,您可以使用VTK的MarchingCubes过滤器。