vtk和itk图像的相互转换

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()


 

你可能感兴趣的:(vtk和itk图像的相互转换)