def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__( self, module_manager, vtk.vtkImageSinusoidSource(), 'Processing.', (), ('vtkImageData',), replaceDoc=True, inputFunctions=None, outputFunctions=None)
def test_vtk2sitk(self): source = vtk.vtkImageSinusoidSource() source.Update() img = source.GetOutput() print("\nVTK source image") print(type(img)) print(img.GetScalarTypeAsString()) print(img.GetDimensions()) print("\nConverting VTK to SimpleITK") sitkimg = vtk2sitk.vtk2sitk(img, True) print("\nResulting SimpleITK Image") print(type(sitkimg)) print(sitkimg.GetPixelIDTypeAsString()) print(sitkimg.GetSize()) self.assertIsInstance(sitkimg, sitk.Image) self.assertTupleEqual(img.GetDimensions(), sitkimg.GetSize()) # Create a VTK image of pixel type short cast = vtk.vtkImageCast() cast.SetInputConnection(0, source.GetOutputPort()) cast.SetOutputScalarTypeToShort() cast.Update() img2 = cast.GetOutput() print("\nVTK short image") print(type(img2)) print(img2.GetScalarTypeAsString()) print(img2.GetDimensions()) # Convert the short image to SimpleITK print("\nConverting short VTK to SimpleITK") sitkimg2 = vtk2sitk.vtk2sitk(img2, True) print("\nSimpleITK short image") print(type(sitkimg2)) print(sitkimg2.GetPixelIDTypeAsString()) print(sitkimg2.GetSize()) self.assertIsInstance(sitkimg2, sitk.Image) self.assertTupleEqual(img2.GetDimensions(), sitkimg2.GetSize()) # compare the statistics of the VTK and SimpleITK images ok = compare_stats.compare_stats(sitkimg2, img2) if ok: print("Statistics comparison passed") else: self.fail("Statistics comparison failed")
def viewVtk(mat): import vtk imageData = vtk.vtkImageData() imageData.SetDimensions(mat.shape[0], mat.shape[1], 1) imageData.SetScalarTypeToUnsignedShort() imageData.SetNumberOfScalarComponents(1) imageData.AllocateScalars() viewer = vtk.vtkImageViewer() viewer.SetInput(imageData) viewer.SetZSlice(0) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(viewer.GetRenderWindow()) iren.Initialize() iren.Start() imageData = vtk.vtkImageSinusoidSource() imageData.SetWholeExtent(0, 300, 0, 300, 0, 10) imageData.SetAmplitude(63) imageData.SetDirection(1, 1, 0) imageData.SetPeriod(25) viewer = vtk.vtkImageViewer() viewer.SetInput(imageData.GetOutput()) viewer.SetColorWindow(126) viewer.SetColorLevel(0) viewer.SetZSlice(0) def hamschti(obj, event): print "Haam:" print obj print event iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(viewer.GetRenderWindow()) iren.Initialize() interactor = vtk.vtkInteractorStyleImage() ##interactor.AddObserver('LeftButtonPressEvent', hamschti) iren.SetInteractorStyle(interactor) iren.Start()
def viewVtk(mat): import vtk imageData = vtk.vtkImageData() imageData.SetDimensions(mat.shape[0], mat.shape[1], 1) imageData.SetScalarTypeToUnsignedShort() imageData.SetNumberOfScalarComponents(1) imageData.AllocateScalars() viewer = vtk.vtkImageViewer() viewer.SetInput(imageData) viewer.SetZSlice(0) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(viewer.GetRenderWindow()) iren.Initialize() iren.Start() imageData = vtk.vtkImageSinusoidSource() imageData.SetWholeExtent(0, 300, 0, 300, 0, 10) imageData.SetAmplitude(63) imageData.SetDirection(1, 1, 0) imageData.SetPeriod(25) viewer = vtk.vtkImageViewer() viewer.SetInput(imageData.GetOutput()) viewer.SetColorWindow(126) viewer.SetColorLevel(0) viewer.SetZSlice(0) def hamschti(obj, event): print 'Haam:' print obj print event iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(viewer.GetRenderWindow()) iren.Initialize() interactor = vtk.vtkInteractorStyleImage() ##interactor.AddObserver('LeftButtonPressEvent', hamschti) iren.SetInteractorStyle(interactor) iren.Start()
def main(): colors = vtk.vtkNamedColors() colors.SetColor('leftBkg', [0.6, 0.5, 0.4, 1.0]) colors.SetColor('centreBkg', [0.1, 0.5, 0.4, 1.0]) colors.SetColor('rightBkg', [0.4, 0.5, 0.6, 1.0]) # Create image 1 source1 = vtk.vtkImageMandelbrotSource() source1.SetWholeExtent(0, 255, 0, 255, 0, 0) source1.Update() source1Double = vtk.vtkImageCast() source1Double.SetInputConnection(0, source1.GetOutputPort()) source1Double.SetOutputScalarTypeToDouble() # Create image 2 source2 = vtk.vtkImageSinusoidSource() source2.SetWholeExtent(0, 255, 0, 255, 0, 0) source2.Update() # Do the sum sumFilter = vtk.vtkImageWeightedSum() sumFilter.SetWeight(0, 0.8) sumFilter.SetWeight(1, 0.2) sumFilter.AddInputConnection(source1Double.GetOutputPort()) sumFilter.AddInputConnection(source2.GetOutputPort()) sumFilter.Update() # Display the images source1CastFilter = vtk.vtkImageCast() source1CastFilter.SetInputConnection(source1.GetOutputPort()) source1CastFilter.SetOutputScalarTypeToUnsignedChar() source1CastFilter.Update() source2CastFilter = vtk.vtkImageCast() source2CastFilter.SetInputConnection(source2.GetOutputPort()) source2CastFilter.SetOutputScalarTypeToUnsignedChar() source2CastFilter.Update() summedCastFilter = vtk.vtkImageCast() summedCastFilter.SetInputConnection(sumFilter.GetOutputPort()) summedCastFilter.SetOutputScalarTypeToUnsignedChar() summedCastFilter.Update() # Create actors source1Actor = vtk.vtkImageActor() source1Actor.GetMapper().SetInputConnection( source1CastFilter.GetOutputPort()) source2Actor = vtk.vtkImageActor() source2Actor.GetMapper().SetInputConnection( source2CastFilter.GetOutputPort()) summedActor = vtk.vtkImageActor() summedActor.GetMapper().SetInputConnection( summedCastFilter.GetOutputPort()) # There will be one render window renderWindow = vtk.vtkRenderWindow() renderWindow.SetSize(600, 300) # And one interactor interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # Define viewport ranges # (xmin, ymin, xmax, ymax) leftViewport = [0.0, 0.0, 0.33, 1.0] centerViewport = [0.33, 0.0, .66, 1.0] rightViewport = [0.66, 0.0, 1.0, 1.0] # Setup renderers leftRenderer = vtk.vtkRenderer() renderWindow.AddRenderer(leftRenderer) leftRenderer.SetViewport(leftViewport) leftRenderer.SetBackground(colors.GetColor3d('leftBkg')) centerRenderer = vtk.vtkRenderer() renderWindow.AddRenderer(centerRenderer) centerRenderer.SetViewport(centerViewport) centerRenderer.SetBackground(colors.GetColor3d('centreBkg')) rightRenderer = vtk.vtkRenderer() renderWindow.AddRenderer(rightRenderer) rightRenderer.SetViewport(rightViewport) rightRenderer.SetBackground(colors.GetColor3d('rightBkg')) leftRenderer.AddActor(source1Actor) centerRenderer.AddActor(source2Actor) rightRenderer.AddActor(summedActor) leftRenderer.ResetCamera() centerRenderer.ResetCamera() rightRenderer.ResetCamera() renderWindow.Render() interactor.Start()
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # This script is for testing the normalize filter. # Image pipeline cos = vtk.vtkImageSinusoidSource() cos.SetWholeExtent(0, 225, 0, 225, 0, 20) cos.SetAmplitude(250) cos.SetDirection(1, 1, 1) cos.SetPeriod(20) cos.ReleaseDataFlagOff() gradient = vtk.vtkImageGradient() gradient.SetInputConnection(cos.GetOutputPort()) gradient.SetDimensionality(3) norm = vtk.vtkImageNormalize() norm.SetInputConnection(gradient.GetOutputPort()) viewer = vtk.vtkImageViewer() #viewer DebugOn viewer.SetInputConnection(norm.GetOutputPort()) viewer.SetZSlice(10) viewer.SetColorWindow(2.0) viewer.SetColorLevel(0) viewer.Render() # --- end of script --
def main(): colors = vtk.vtkNamedColors() colors.SetColor("right_bkg", [0.4, 0.5, 0.6, 1.0]) colors.SetColor("left_bkg", [0.6, 0.5, 0.4, 1.0]) # Create an image source = vtk.vtkImageSinusoidSource() source.Update() normalizeFilter = vtk.vtkImageNormalize() normalizeFilter.SetInputConnection(source.GetOutputPort()) normalizeFilter.Update() inputCastFilter = vtk.vtkImageCast() inputCastFilter.SetInputConnection(source.GetOutputPort()) inputCastFilter.SetOutputScalarTypeToUnsignedChar() inputCastFilter.Update() normalizeCastFilter = vtk.vtkImageCast() normalizeCastFilter.SetInputConnection(normalizeFilter.GetOutputPort()) normalizeCastFilter.SetOutputScalarTypeToUnsignedChar() normalizeCastFilter.Update() # Create actors inputActor = vtk.vtkImageActor() inputActor.GetMapper().SetInputConnection(inputCastFilter.GetOutputPort()) normalizedActor = vtk.vtkImageActor() normalizedActor.GetMapper().SetInputConnection( normalizeCastFilter.GetOutputPort()) # There will be one render window renderWindow = vtk.vtkRenderWindow() renderWindow.SetSize(600, 300) # And one interactor interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # Define viewport ranges # (xmin, ymin, xmax, ymax) leftViewport = [0.0, 0.0, 0.5, 1.0] rightViewport = [0.5, 0.0, 1.0, 1.0] # Setup both renderers leftRenderer = vtk.vtkRenderer() renderWindow.AddRenderer(leftRenderer) leftRenderer.SetViewport(leftViewport) leftRenderer.SetBackground(colors.GetColor3d("left_bkg")) rightRenderer = vtk.vtkRenderer() renderWindow.AddRenderer(rightRenderer) rightRenderer.SetViewport(rightViewport) rightRenderer.SetBackground(colors.GetColor3d("right_bkg")) leftRenderer.AddActor(inputActor) rightRenderer.AddActor(normalizedActor) leftRenderer.ResetCamera() rightRenderer.ResetCamera() renderWindow.Render() interactor.Start()
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # This script is for testing the normalize filter. # Image pipeline cos = vtk.vtkImageSinusoidSource() cos.SetWholeExtent(0, 225, 0, 225, 0, 20) cos.SetAmplitude(250) cos.SetDirection(1, 1, 1) cos.SetPeriod(20) cos.ReleaseDataFlagOff() gradient = vtk.vtkImageGradient() gradient.SetInputConnection(cos.GetOutputPort()) gradient.SetDimensionality(3) norm = vtk.vtkImageNormalize() norm.SetInputConnection(gradient.GetOutputPort()) viewer = vtk.vtkImageViewer() # viewer DebugOn viewer.SetInputConnection(norm.GetOutputPort()) viewer.SetZSlice(10) viewer.SetColorWindow(2.0) viewer.SetColorLevel(0) viewer.Render() # --- end of script --
#!/usr/bin/env python import vtk # Create image 1 source1 = vtk.vtkImageMandelbrotSource() source1.SetWholeExtent(0, 255, 0, 255, 0, 0) source1.Update() source1Double = vtk.vtkImageCast() source1Double.SetInputConnection(0, source1.GetOutputPort()) source1Double.SetOutputScalarTypeToDouble() # Create image 2 source2 = vtk.vtkImageSinusoidSource() source2.SetWholeExtent(0, 255, 0, 255, 0, 0) source2.Update() # Do the sum sumFilter = vtk.vtkImageWeightedSum() sumFilter.SetWeight(0, 0.8) sumFilter.SetWeight(1, 0.2) sumFilter.AddInputConnection(source1Double.GetOutputPort()) sumFilter.AddInputConnection(source2.GetOutputPort()) sumFilter.Update() # Display the images source1CastFilter = vtk.vtkImageCast() source1CastFilter.SetInputConnection(source1.GetOutputPort()) source1CastFilter.SetOutputScalarTypeToUnsignedChar() source1CastFilter.Update()