level 6
是这样的,我有一堆DICOM文件序列,想用VTK的各种三维滤波给处理好之后,把这个三维的数据场存下来(存为三维.raw格式),然后之后每次再用的时候就可以直接使用处理好的.raw文件,而不是重新滤波降噪平滑了。
现在DICOM序列的重建比较容易,VTK也提供了很多三维滤波的类,有些效果确实很不错,但我不能每次都重新进行一次图像处理啊(200幅图,3×3×3的中值滤波处理一次就CPU满负荷跑半个多小时谁受得了...)所以,如何将三维数据场保存成.raw + .mhd的格式啊?
求大神指点迷津
2016年01月27日 08点01分
2
level 6
vtkSmartPointer<vtkDICOMImageReader> dcmreader = vtkSmartPointer<vtkDICOMImageReader>::New();
dcmreader->SetDirectoryName("F:\\File\\DICOM\\DICOM-files\\34");
dcmreader->Update();
vtkSmartPointer<vtkImageCast> dcmcaster = vtkSmartPointer<vtkImageCast>::New();
dcmcaster->SetInputConnection(dcmreader->GetOutputPort());
dcmcaster->SetOutputScalarTypeToUnsignedShort();
vtkSmartPointer<vtkImageMedian3D> median3D = vtkSmartPointer<vtkImageMedian3D>::New();
median3D->SetInputConnection(dcmcaster->GetOutputPort());
median3D->SetKernelSize(3, 3, 3);
median3D->Update();
vtkSmartPointer<vtkStructuredPointsWriter> vtkWriter = vtkSmartPointer<vtkStructuredPointsWriter>::New();
vtkWriter->SetInputConnection(median3D->GetOutputPort());
vtkWriter->SetFileName("median3D.vtk");
vtkWriter->SetFileTypeToBinary();
vtkWriter->Write();
2016年02月28日 15点02分
4