求问大家,怎么用vtk生成.raw文件啊?
vtk吧
全部回复
仅看楼主
level 6
7号撞针 楼主
我用vtkMetaImageWriter怎么搞都只一个只有512K的乱码...难道不是用这个类么[泪]
2016年01月25日 06点01分 1
level 6
7号撞针 楼主
是这样的,我有一堆DICOM文件序列,想用VTK的各种三维滤波给处理好之后,把这个三维的数据场存下来(存为三维.raw格式),然后之后每次再用的时候就可以直接使用处理好的.raw文件,而不是重新滤波降噪平滑了。
现在DICOM序列的重建比较容易,VTK也提供了很多三维滤波的类,有些效果确实很不错,但我不能每次都重新进行一次图像处理啊(200幅图,3×3×3的中值滤波处理一次就CPU满负荷跑半个多小时谁受得了...)所以,如何将三维数据场保存成.raw + .mhd的格式啊?
求大神指点迷津
2016年01月27日 08点01分 2
level 6
7号撞针 楼主
手动@吧主[泪]
2016年01月27日 08点01分 3
我目前先用vtkStructuredPointsWriter把体数据写成.vtk格式得了,不知道生成.raw是不是不可行啊...
2016年01月27日 09点01分
@7号撞针 成功了吗?
2016年02月27日 01点02分
@语赟 嗯嗯,可以的,我试着用300张DICOM做了个中值滤波然后把处理后的数据场村成了一个.vtk文件:vtkDICOMImageReader-->vtkImageCast-->vtkImageMedian3D-->vtkStructuredPointsWriter
2016年02月28日 09点02分
@语赟 “存成”
2016年02月28日 09点02分
level 6
7号撞针 楼主
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
level 2
谢谢,我试试[太开心]
2016年02月29日 00点02分 5
1