1,itk 图像转换为vtk图像:使用ImageToVTKImageFilter,例如:
import itk import sys import vtk inputfilename="D:/DATA/small/0200.dcm" outputfilename="D:/DATA/0200.png" # # Reads a 2D image in with signed short (16bits/pixel) pixel type # and save it as unsigned char (8bits/pixel) pixel type # InputImageType = itk.Image.SS2 OutputImageType = itk.Image.UC2 reader = itk.ImageFileReader[InputImageType].New() writer = itk.ImageFileWriter[OutputImageType].New() filter = itk.RescaleIntensityImageFilter[InputImageType, OutputImageType].New() filter.SetOutputMinimum( 0 ) filter.SetOutputMaximum(255) filter.SetInput( reader.GetOutput() ) writer.SetInput( filter.GetOutput() ) reader.SetFileName(inputfilename ) writer.SetFileName(outputfilename ) writer.Update() ivfilter=itk.ImageToVTKImageFilter[OutputImageType].New() ivfilter.SetInput(filter.GetOutput()) viewer=vtk.vtkImageViewer() iren=vtk.vtkRenderWindowInteractor() viewer.SetupInteractor(iren) viewer.SetInput(ivfilter.GetOutput()) viewer.Render() viewer.SetColorWindow(255) viewer.SetColorLevel(128) iren.Start()
2,vtk图像转化为itk图像:使用VTKImageToImageFilter,例如:
import sys import vtk import itk from InsightToolkit import * reader=vtk.vtkDICOMImageReader() reader.SetDirectoryName("D:/DATA/small") reader.Update() imageType=itk.Image.SS3 filter=itk.VTKImageToImageFilter[imageType].New() filter.SetInput(reader.GetOutput()) filter.Update() imagedata=filter.GetOutput() writer=itkImageFileWriterISS3_New() writer.SetFileName("D:/DATA/small_test.nii") writer.SetInput(imagedata) writer.Update()