Advertisement
Guest User

vtkImageActor example

a guest
Feb 10th, 2012
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.81 KB | None | 0 0
  1. import vtk
  2. import math
  3.  
  4. red = [255,0,0]
  5. blue= [0,0,255]
  6. green= [0,255,0]
  7. black= [0,0,0]
  8.  
  9. ren = vtk.vtkRenderer()
  10. renWin = vtk.vtkRenderWindow()
  11. renWin.AddRenderer(ren)
  12.  
  13. iren = vtk.vtkRenderWindowInteractor()
  14. iren.SetRenderWindow(renWin)
  15. interactorstyle = iren.GetInteractorStyle()
  16. interactorstyle.SetCurrentStyleToTrackballCamera()    
  17.  
  18. camera = vtk.vtkCamera()
  19. camera.SetClippingRange(-10, 500)
  20. camera.SetPosition(0, -1, 3000)
  21. camera.SetFocalPoint(255, 255, 0)
  22.  
  23. #camera.SetViewAngle(50)
  24. #camera.SetViewUp(1, 1, 0)
  25. ren.SetActiveCamera(camera)
  26.  
  27.  
  28. # first image
  29. vol = vtk.vtkImageData()
  30. vol.SetDimensions(512,512,1)
  31. vol.SetSpacing(1,1,1)
  32. vol.SetOrigin(0,0,0)
  33. vol.AllocateScalars()
  34. vol.SetNumberOfScalarComponents(3)
  35. vol.SetScalarTypeToUnsignedChar()
  36. # initialize the image
  37. scalars = vtk.vtkCharArray()
  38. for n in range(512):
  39.     for m in range(512):
  40.         x = 512/2 -n
  41.         y = 512/2 -m
  42.         d = math.sqrt(x*x+y*y)
  43.         if ( d < 100 ):
  44.             col = red
  45.         elif (d<200):
  46.             col = green
  47.         else:
  48.             col = blue
  49.         for c in range(3):
  50.             scalars.InsertTuple1( n*(512*3) + m*3 +c, col[c] )
  51.  
  52. vol.GetPointData().SetScalars(scalars)
  53. vol.Update()
  54. ia = vtk.vtkImageActor()
  55. ia.SetInput(vol)
  56. ia.InterpolateOff()
  57. #then add it to the renderer
  58. ren.AddActor(ia)
  59.  
  60. # with renWin.Render() the update (below) will not be shown
  61. #renWin.Render()
  62. # with ren.Render() the update will show
  63. ren.Render()
  64.  
  65. # now modify the image
  66. for n in range(512):
  67.     for m in range(512):
  68.         x = 512/2 -n
  69.         y = 512/2 -m
  70.         d = math.sqrt(x*x+y*y)
  71.         if ( d < 66 ):
  72.             col = black
  73.             for c in range(3):
  74.                 scalars.SetValue( n*(512*3) + m*3 +c, chr(col[c]) )
  75. vol.Update()
  76.  
  77.  
  78. iren.Initialize()
  79. iren.Start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement