def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__( self, module_manager, vtk.vtkPNMReader(), 'Reading vtkPNM.', (), ('vtkPNM',), replaceDoc=True, inputFunctions=None, outputFunctions=None)
def main(): colors = vtk.vtkNamedColors() fileName = get_program_parameters() # Now create the RenderWindow, Renderer and Interactor. # ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) imageIn = vtk.vtkPNMReader() imageIn.SetFileName(fileName) gaussian = vtk.vtkImageGaussianSmooth() gaussian.SetStandardDeviations(2, 2) gaussian.SetDimensionality(2) gaussian.SetRadiusFactors(1, 1) gaussian.SetInputConnection(imageIn.GetOutputPort()) geometry = vtk.vtkImageDataGeometryFilter() geometry.SetInputConnection(gaussian.GetOutputPort()) aClipper = vtk.vtkClipPolyData() aClipper.SetInputConnection(geometry.GetOutputPort()) aClipper.SetValue(127.5) aClipper.GenerateClipScalarsOff() aClipper.InsideOutOn() aClipper.GetOutput().GetPointData().CopyScalarsOff() aClipper.Update() mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(aClipper.GetOutputPort()) mapper.ScalarVisibilityOff() letter = vtk.vtkActor() letter.SetMapper(mapper) ren1.AddActor(letter) letter.GetProperty().SetDiffuseColor(colors.GetColor3d("LampBlack")) letter.GetProperty().SetRepresentationToWireframe() ren1.SetBackground(colors.GetColor3d("WhiteSmoke")) ren1.ResetCamera() ren1.GetActiveCamera().Dolly(1.2) ren1.ResetCameraClippingRange() renWin.SetSize(640, 480) renWin.SetWindowName('CreateBFont') # Render the image. # renWin.Render() iren.Start()
def Earth(pos=(0, 0, 0), r=1, lw=1): """Build a textured actor representing the Earth. .. hint:: |geodesic| |geodesic.py|_ """ import os tss = vtk.vtkTexturedSphereSource() tss.SetRadius(r) tss.SetThetaResolution(72) tss.SetPhiResolution(36) earthMapper = vtk.vtkPolyDataMapper() earthMapper.SetInputConnection(tss.GetOutputPort()) earthActor = Actor(c="w") earthActor.SetMapper(earthMapper) atext = vtk.vtkTexture() pnmReader = vtk.vtkPNMReader() cdir = os.path.dirname(__file__) if cdir == "": cdir = "." fn = settings.textures_path + "earth.ppm" pnmReader.SetFileName(fn) atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() earthActor.SetTexture(atext) if not lw: earthActor.SetPosition(pos) return earthActor es = vtk.vtkEarthSource() es.SetRadius(r / 0.995) earth2Mapper = vtk.vtkPolyDataMapper() earth2Mapper.SetInputConnection(es.GetOutputPort()) earth2Actor = Actor() # vtk.vtkActor() earth2Actor.SetMapper(earth2Mapper) earth2Mapper.ScalarVisibilityOff() earth2Actor.GetProperty().SetLineWidth(lw) ass = Assembly([earthActor, earth2Actor]) ass.SetPosition(pos) settings.collectable_actors.append(ass) return ass
def earth(pos=[0, 0, 0], r=1, lw=1): '''Build a textured actor representing the Earth. .. hint:: Example: `earth.py <https://github.com/marcomusy/vtkplotter/blob/master/examples/basic/earth.py>`_ .. image:: https://user-images.githubusercontent.com/32848391/51031592-5a448700-159d-11e9-9b66-bee6abb18679.png ''' import os tss = vtk.vtkTexturedSphereSource() tss.SetRadius(r) tss.SetThetaResolution(72) tss.SetPhiResolution(36) earthMapper = vtk.vtkPolyDataMapper() earthMapper.SetInputConnection(tss.GetOutputPort()) earthActor = Actor() #vtk.vtkActor() earthActor.SetMapper(earthMapper) atext = vtk.vtkTexture() pnmReader = vtk.vtkPNMReader() cdir = os.path.dirname(__file__) if cdir == '': cdir = '.' fn = cdir + '/textures/earth.ppm' pnmReader.SetFileName(fn) atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() earthActor.SetTexture(atext) if not lw: earthActor.SetPosition(pos) return earthActor es = vtk.vtkEarthSource() es.SetRadius(r / .995) earth2Mapper = vtk.vtkPolyDataMapper() earth2Mapper.SetInputConnection(es.GetOutputPort()) earth2Actor = Actor() # vtk.vtkActor() earth2Actor.SetMapper(earth2Mapper) earth2Actor.GetProperty().SetLineWidth(lw) ass = Assembly([earthActor, earth2Actor]) ass.SetPosition(pos) return ass
def earth(pos=[0, 0, 0], r=1, lw=1): '''Build a textured actor representing the Earth. [**Example**](https://github.com/marcomusy/vtkplotter/blob/master/examples/basic/earth.py) ''' import os tss = vtk.vtkTexturedSphereSource() tss.SetRadius(r) tss.SetThetaResolution(72) tss.SetPhiResolution(36) earthMapper = vtk.vtkPolyDataMapper() earthMapper.SetInputConnection(tss.GetOutputPort()) earthActor = Actor() #vtk.vtkActor() earthActor.SetMapper(earthMapper) atext = vtk.vtkTexture() pnmReader = vtk.vtkPNMReader() cdir = os.path.dirname(__file__) if cdir == '': cdir = '.' fn = cdir + '/textures/earth.ppm' pnmReader.SetFileName(fn) atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() earthActor.SetTexture(atext) if not lw: earthActor.SetPosition(pos) return earthActor es = vtk.vtkEarthSource() es.SetRadius(r / .995) earth2Mapper = vtk.vtkPolyDataMapper() earth2Mapper.SetInputConnection(es.GetOutputPort()) earth2Actor = Actor() # vtk.vtkActor() earth2Actor.SetMapper(earth2Mapper) earth2Actor.GetProperty().SetLineWidth(lw) ass = Assembly([earthActor, earth2Actor]) ass.SetPosition(pos) return ass
def main(): # The main window window = gtk.Window() window.set_title("A GtkGLExtVTKRenderWindow Demo!") window.connect("destroy", gtk.mainquit) window.connect("delete_event", gtk.mainquit) window.set_border_width(10) vtkda = GtkGLExtVTKRenderWindow() vtkda.show() vbox = gtk.VBox(spacing=3) vbox.show() vbox.pack_start(vtkda) button = gtk.Button('My Button') button.show() vbox.pack_start(button) window.add(vbox) # if one of the cones from above is not commented out, shows only # the cone on a mac, otherwise, it shows reader = vtk.vtkPNMReader() reader.SetFilePattern("mini/checkerboard%i.pgm") size = 5 reader.SetDataExtent(0, size, 0, size, 0, size) reader.SetDataSpacing(1, 1, 1) reader.SetDataScalarTypeToUnsignedChar() image = reader.GetOutput() image.Update() mapper = vtk.vtkFixedPointVolumeRayCastMapper() mapper.SetInput(image) if size < 20: mapper.SetSampleDistance(float(size) / 1000) mapper.SetInteractiveSampleDistance(float(size) / 500) volproperty = vtk.vtkVolumeProperty() color = vtk.vtkPiecewiseFunction() color.AddSegment(0, 0, 255, 1) volproperty.SetColor(0, color) volume = vtk.vtkVolume() volume.SetMapper(mapper) volume.SetProperty(volproperty) window.set_size_request(400, 400) # The VTK stuff. cone = vtk.vtkConeSource() cone.SetResolution(80) coneMapper = vtk.vtkPolyDataMapper() coneMapper.SetInput(cone.GetOutput()) #coneActor = vtk.vtkLODActor() coneActor = vtk.vtkActor() coneActor.SetMapper(coneMapper) coneActor.GetProperty().SetColor(0.5, 0.5, 1.0) ren = vtk.vtkRenderer() vtkda.GetRenderWindow().AddRenderer(ren) ren.AddActor(coneActor) ren.AddActor(volume) # show the main window and start event processing. window.show() gtk.mainloop()
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # do alpha-blending of two images, but also clip with stencil reader1 = vtk.vtkBMPReader() reader1.SetFileName(VTK_DATA_ROOT + "/Data/masonry.bmp") reader2 = vtk.vtkPNMReader() reader2.SetFileName(VTK_DATA_ROOT + "/Data/B.pgm") table = vtk.vtkLookupTable() table.SetTableRange(0, 127) table.SetValueRange(0.0, 1.0) table.SetSaturationRange(0.0, 0.0) table.SetHueRange(0.0, 0.0) table.SetAlphaRange(0.9, 0.0) table.Build() translate = vtk.vtkImageTranslateExtent() translate.SetInputConnection(reader2.GetOutputPort()) translate.SetTranslation(60, 60, 0) sphere = vtk.vtkSphere() sphere.SetCenter(121, 131, 0) sphere.SetRadius(70) functionToStencil = vtk.vtkImplicitFunctionToImageStencil() functionToStencil.SetInput(sphere)
def main(argv): if len(argv) < 2: print "usage: ", argv[0], " <data>" exit(1) data_fn = argv[1] mapper = vtk.vtkPolyDataMapper() if data_fn.find('.vtk') != -1: reader = vtk.vtkPolyDataReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkDelaunay2D() trianglize.SetInput(data) trianglize.Update() mapper.SetInputConnection(trianglize.GetOutputPort()) elif data_fn.find('.pgm') != -1: reader = vtk.vtkPNMReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkImageDataGeometryFilter() trianglize.SetInput(data) trianglize.Update() warp = vtk.vtkWarpScalar() warp.SetScaleFactor(0.2) # arbitrary choice warp.SetInputConnection(trianglize.GetOutputPort()) warp.Update() mapper.SetInputConnection(warp.GetOutputPort()) elif data_fn.find('.dcm') != -1: reader = vtk.vtkDICOMImageReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkImageDataGeometryFilter() trianglize.SetInput(data) trianglize.Update() warp = vtk.vtkWarpScalar() #warp.SetScaleFactor(0.2) # arbitrary choice warp.SetInputConnection(trianglize.GetOutputPort()) warp.Update() mapper.SetInputConnection(warp.GetOutputPort()) else: print "unrecognized data file:", data_fn exit(1) actor = vtk.vtkActor() actor.SetMapper(mapper) renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetSize(700, 700) renderWindow.AddRenderer(renderer) renderWindow.SetWindowName("heightfield") renderer.AddActor(actor) renderer.SetBackground(0.4, 0.3, 0.2) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) renderWindow.Render() interactor.Start()
def SetUp(self): ''' Set up squadViewer ''' def OnClosing(): self.root.quit() def SetPhi(squad, win, phi): squad.SetPhiRoundness(float(phi)) win.Render() def SetTheta(squad, win, theta): squad.SetThetaRoundness(float(theta)) win.Render() def SetThickness(squad, win, thickness): squad.SetThickness(float(thickness)) win.Render() def SetTexture(actor, texture, win): if doTexture.get(): actor.SetTexture(texture) else: actor.SetTexture(None) win.Render() def SetToroid(squad, scale, win): squad.SetToroidal(toroid.get()) if toroid.get(): scale.config(state=NORMAL, fg='black') else: scale.config(state=DISABLED, fg='gray') win.Render() self.root = tkinter.Tk() self.root.title("superquadric viewer") # Define what to do when the user explicitly closes a window. self.root.protocol("WM_DELETE_WINDOW", OnClosing) # Create render window self.tkrw = vtkTkRenderWidget(self.root, width=550, height=450) self.tkrw.BindTkRenderWidget() renWin = self.tkrw.GetRenderWindow() # Create parameter sliders # prs = tkinter.Scale(self.root, from_=0, to=3.5, res=0.1, orient=HORIZONTAL, label="phi roundness") trs = tkinter.Scale(self.root, from_=0, to=3.5, res=0.1, orient=HORIZONTAL, label="theta roundness") thicks = tkinter.Scale(self.root, from_=0.01, to=1.0, res=0.01, orient=HORIZONTAL, label="thickness") # Create check buttons # toroid = tkinter.IntVar() toroid.set(0) doTexture = tkinter.IntVar() doTexture.set(0) rframe = tkinter.Frame(self.root) torbut = tkinter.Checkbutton(rframe, text="Toroid", variable=toroid) texbut = tkinter.Checkbutton(rframe, text="Texture", variable=doTexture) # Put it all together # torbut.pack(padx=10, pady=5, ipadx=20, ipady=5, side=RIGHT, anchor=S) texbut.pack(padx=10, pady=5, ipadx=20, ipady=5, side=RIGHT, anchor=S) self.tkrw.grid(sticky=N+E+W+S, columnspan=2) rframe.grid(sticky=N+E+W+S) thicks.grid(sticky=N+S+E+W, padx=10, ipady=5, row=1, column=1) prs.grid(sticky=N+E+W+S, padx=10, ipady=5, row = 2, column = 0) trs.grid(sticky=N+E+W+S, padx=10, ipady=5, row = 2, column = 1) tkinter.Pack.propagate(rframe,NO) prs.set(1.0) trs.set(0.7) thicks.set(0.3) toroid.set(1) doTexture.set(0) # Create pipeline # squad = vtk.vtkSuperquadricSource() squad.SetPhiResolution(20) squad.SetThetaResolution(25) pnmReader = vtk.vtkPNMReader() pnmReader.SetFileName(VTK_DATA_ROOT + "/Data/earth.ppm") atext = vtk.vtkTexture() atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() appendSquads = vtk.vtkAppendPolyData() appendSquads.AddInputConnection(squad.GetOutputPort()) mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(squad.GetOutputPort()) mapper.ScalarVisibilityOff() actor = vtk.vtkActor() actor.SetMapper(mapper) actor.SetTexture(atext) actor.GetProperty().SetDiffuseColor(0.5, 0.8, 0.8) actor.GetProperty().SetAmbient(0.2) actor.GetProperty().SetAmbientColor(0.2, 0.2, 0.2) squad.SetPhiRoundness(prs.get()) squad.SetThetaRoundness(trs.get()) squad.SetToroidal(toroid.get()) squad.SetThickness(thicks.get()) squad.SetScale(1, 1, 1) SetTexture(actor, atext, renWin) # Create renderer stuff # ren = vtk.vtkRenderer() ren.SetAmbient(1.0, 1.0, 1.0) renWin.AddRenderer(ren) # Add the actors to the renderer, set the background and size # ren.AddActor(actor) ren.SetBackground(0.25, 0.2, 0.2) ren.ResetCamera() ren.GetActiveCamera().Zoom(1.2) ren.GetActiveCamera().Elevation(40) ren.GetActiveCamera().Azimuth(-20) # Associate the functions with the sliders and check buttons. # prs.config(command=partial(SetPhi, squad, self.tkrw)) trs.config(command=partial(SetTheta, squad, self.tkrw)) thicks.config(command=partial(SetThickness,squad, self.tkrw)) torbut.config(command=partial(SetToroid, squad, thicks, self.tkrw)) texbut.config(command=partial(SetTexture, actor, atext, self.tkrw))
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # A script to test the stencil filter by using one image # to stencil another # Image pipeline reader1 = vtk.vtkBMPReader() reader1.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/masonry.bmp") reader2 = vtk.vtkPNMReader() reader2.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/B.pgm") translate = vtk.vtkImageTranslateExtent() translate.SetInputConnection(reader2.GetOutputPort()) translate.SetTranslation(60,60,0) imageToStencil = vtk.vtkImageToImageStencil() imageToStencil.SetInputConnection(translate.GetOutputPort()) imageToStencil.ThresholdBetween(0,127) # silly stuff to increase coverage imageToStencil.SetUpperThreshold(imageToStencil.GetUpperThreshold()) imageToStencil.SetLowerThreshold(imageToStencil.GetLowerThreshold()) stencil = vtk.vtkImageStencil() stencil.SetInputConnection(reader1.GetOutputPort()) stencil.SetBackgroundValue(0) stencil.ReverseStencilOn() stencil.SetStencilConnection(imageToStencil.GetOutputPort()) viewer = vtk.vtkImageViewer() viewer.SetInputConnection(stencil.GetOutputPort()) viewer.SetColorWindow(255.0) viewer.SetColorLevel(127.5)
def main(argv): if len(argv) < 2: print "usage: ",argv[0]," <data> [flat]" exit(1) data_fn = argv[1] flat = False if len(argv) > 2: flat = True mapper = vtk.vtkPolyDataMapper() if data_fn.find('.vtk') != -1: reader = vtk.vtkPolyDataReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkDelaunay2D() trianglize.SetInput(data) trianglize.Update() mapper.SetInputConnection(trianglize.GetOutputPort()) elif data_fn.find('.pgm') != -1: reader = vtk.vtkPNMReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() geometry = vtk.vtkImageDataGeometryFilter() geometry.SetInputConnection(reader.GetOutputPort()) geometry.Update() if flat: merge = vtk.vtkMergeFilter() merge.SetGeometry(geometry.GetOutput()) merge.SetScalars(data) mapper.SetInputConnection(merge.GetOutputPort()) else: warp = vtk.vtkWarpScalar() warp.SetInputConnection(geometry.GetOutputPort()) warp.SetScaleFactor(0.3) # looked good warp.Update() merge = vtk.vtkMergeFilter() merge.SetGeometry(warp.GetOutput()) merge.SetScalars(data) mapper.SetInputConnection(merge.GetOutputPort()) elif data_fn.find('.dcm') != -1: reader =vtk.vtkDICOMImageReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() geometry = vtk.vtkImageDataGeometryFilter() geometry.SetInput(data) geometry.Update() if flat: mapper.SetInputConnection(geometry.GetOutputPort()) else: warp = vtk.vtkWarpScalar() warp.SetInputConnection(geometry.GetOutputPort()) warp.Update() mapper.SetInputConnection(warp.GetOutputPort()) else: print "unrecognized data file:",data_fn exit(1) lut = vtk.vtkLookupTable() lut.SetNumberOfColors(10) lut.SetHueRange(0.5,0.3) lut.SetSaturationRange(0.6,0.5) lut.SetValueRange(1.0,0.5) lut.Build() mapper.ImmediateModeRenderingOff() mapper.SetLookupTable(lut) actor = vtk.vtkActor() actor.SetMapper(mapper) renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetSize(700,700) renderWindow.AddRenderer(renderer) renderer.AddActor(actor) renderer.SetBackground(0.4,0.3,0.2) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) renderWindow.Render() interactor.Start()
def read_png(png_file): png_reader = vtk.vtkPNMReader() png_reader.SetFileName(png_file) return png_reader
def main(): # colors = vtk.vtkNamedColors() fileName1 = "C:\\Users\\chenjiaxing\\Desktop\\VTKTextBook\\Data\\Frog\\frog" fileName2 = "C:\\Users\\chenjiaxing\\Desktop\\VTKTextBook\\Data\\Frog\\frogTissue" rows = 500 columns = 470 sliceNumber = 33 start_slice = 1 end_slice = 138 pixel_size = 1 spacing = 1.5 endX = rows - 1 endY = columns - 1 endZ = end_slice - 1 sliceOrder = SliceOrder() # Now create the RenderWindow, Renderer and Interactor # ren1 = vtk.vtkRenderer() ren2 = vtk.vtkRenderer() ren3 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) renWin.AddRenderer(ren2) renWin.AddRenderer(ren3) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) #greyReader = vtk.vtkMetaImageReader() #greyReader.SetFileName(fileName1) #greyReader.Update() greyReader = vtk.vtkPNMReader() greyReader.SetFilePrefix(fileName1) greyReader.SetDataSpacing(pixel_size, pixel_size, spacing) greyReader.SetDataVOI(0, endX, 0, endY, sliceNumber, sliceNumber) greyReader.SetDataExtent(0, endX, 0, endY, sliceNumber, sliceNumber) greyReader.DebugOn() greyPadder = vtk.vtkImageConstantPad() greyPadder.SetInputConnection(greyReader.GetOutputPort()) greyPadder.SetOutputWholeExtent(0, 511, 0, 511, 0, 0) greyPadder.SetConstant(0) greyPlane = vtk.vtkPlaneSource() greyTransform = vtk.vtkTransformPolyDataFilter() greyTransform.SetTransform(sliceOrder["hfsi"]) greyTransform.SetInputConnection(greyPlane.GetOutputPort()) greyNormals = vtk.vtkPolyDataNormals() greyNormals.SetInputConnection(greyTransform.GetOutputPort()) greyNormals.FlipNormalsOff() wllut = vtk.vtkWindowLevelLookupTable() wllut.SetWindow(255) wllut.SetLevel(128) wllut.SetTableRange(0, 255) wllut.Build() greyMapper = vtk.vtkPolyDataMapper() greyMapper.SetInputConnection(greyPlane.GetOutputPort()) greyTexture = vtk.vtkTexture() greyTexture.SetInputConnection(greyPadder.GetOutputPort()) greyTexture.SetLookupTable(wllut) greyTexture.SetColorModeToMapScalars() greyTexture.InterpolateOn() greyActor = vtk.vtkActor() greyActor.SetMapper(greyMapper) greyActor.SetTexture(greyTexture) segmentReader = vtk.vtkPNMReader() segmentReader.SetFilePrefix(fileName2) segmentReader.SetDataSpacing(pixel_size, pixel_size, spacing) segmentReader.SetDataVOI(0, endX, 0, endY, sliceNumber, sliceNumber) segmentReader.SetDataExtent(0, endX, 0, endY, sliceNumber, sliceNumber) segmentReader.Update() segmentPadder = vtk.vtkImageConstantPad() segmentPadder.SetInputConnection(segmentReader.GetOutputPort()) segmentPadder.SetOutputWholeExtent(0, 511, 0, 511, 0, 0) segmentPadder.SetConstant(0) segmentPlane = vtk.vtkPlaneSource() segmentTransform = vtk.vtkTransformPolyDataFilter() segmentTransform.SetTransform(sliceOrder["hfsi"]) segmentTransform.SetInputConnection(segmentPlane.GetOutputPort()) segmentNormals = vtk.vtkPolyDataNormals() segmentNormals.SetInputConnection(segmentTransform.GetOutputPort()) segmentNormals.FlipNormalsOn() colorLut = CreateFrogLut() segmentMapper = vtk.vtkPolyDataMapper() segmentMapper.SetInputConnection(segmentPlane.GetOutputPort()) segmentTexture = vtk.vtkTexture() segmentTexture.SetInputConnection(segmentPadder.GetOutputPort()) segmentTexture.SetLookupTable(colorLut) segmentTexture.SetColorModeToMapScalars() segmentTexture.InterpolateOff() segmentActor = vtk.vtkActor() segmentActor.SetMapper(segmentMapper) segmentActor.SetTexture(segmentTexture) segmentOverlayActor = vtk.vtkActor() segmentOverlayActor.SetMapper(segmentMapper) segmentOverlayActor.SetTexture(segmentTexture) segmentOverlayActor.GetProperty().SetOpacity(.5) ren1.SetBackground(0, 0, 0) ren1.SetViewport(0, .5, .5, 1) renWin.SetSize(640, 480) ren1.AddActor(greyActor) ren2.SetBackground(0, 0, 0) ren2.SetViewport(.5, .5, 1, 1) ren2.AddActor(segmentActor) cam1 = vtk.vtkCamera() cam1.SetViewUp(0, -1, 0) cam1.SetPosition(0, 0, -1) ren1.SetActiveCamera(cam1) ren1.ResetCamera() cam1.SetViewUp(0, -1, 0) cam1.SetPosition(0.0554068, -0.0596001, -0.491383) cam1.SetFocalPoint(0.0554068, -0.0596001, 0) ren1.ResetCameraClippingRange() ren3.AddActor(greyActor) ren3.AddActor(segmentOverlayActor) segmentOverlayActor.SetPosition(0, 0, -.01) ren3.SetBackground(0, 0, 0) ren3.SetViewport(0, 0, 1, .5) ren2.SetActiveCamera(ren1.GetActiveCamera()) ren3.SetActiveCamera(ren1.GetActiveCamera()) renWin.Render() iren.Start()
def __init__(self): vtkImageReaderBase.vtkImageReaderBase.__init__(self) self.SetImageReader(vtk.vtkPNMReader())
START_SLICE = 1 END_SLICE = 138 PIXEL_SIZE = 1 SPACING = 1.5 centerX = (COLUMNS / 2) centerY = (ROWS / 2) centerZ = (END_SLICE - START_SLICE) / 2 endX = (COLUMNS - 1) endY = (ROWS - 1) endZ = (END_SLICE - 1) originX = (COLUMNS / 2.0) * PIXEL_SIZE * -1.0 originY = (ROWS / 2.0) * PIXEL_SIZE * -1.0 SLICE_ORDER = "hfsi" greyReader = vtk.vtkPNMReader() greyReader.SetFilePrefix(GREYSTUDY) greyReader.SetDataSpacing(PIXEL_SIZE, PIXEL_SIZE, SPACING) greyReader.SetDataVOI(0, endX, 0, endY, sliceNumber, sliceNumber) greyReader.SetDataExtent(0, endX, 0, endY, sliceNumber, sliceNumber) greyReader.DebugOn() greyPadder = vtk.vtkImageConstantPad() greyPadder.SetInputConnection(greyReader.GetOutputPort()) greyPadder.SetOutputWholeExtent(0, 511, 0, 511, 0, 0) greyPadder.SetConstant(0) greyPlane = vtk.vtkPlaneSource() greyTransform = vtk.vtkTransformPolyDataFilter() if SLICE_ORDER == "si":
## begin main # check that the required number of parameters were passed if len(sys.argv) < 6: print "usage: PNM2StructuredPoints.py <PNM basename> <image width> <image height> <number of images> <vtkStructuredPoints file>" sys.exit(1) # get the args PNMbase = sys.argv[1] imgW = string.atoi(sys.argv[2]) imgH = string.atoi(sys.argv[3]) numImg = string.atoi(sys.argv[4]) vtkFile = sys.argv[5] # reader for slices that make up the volume volread = vtk.vtkPNMReader() volread.SetDataExtent([1, imgW, 1, imgH, 1, numImg]) volread.SetDataByteOrderToLittleEndian() volread.SetFilePrefix(PNMbase) # the actual volume vol = volread.GetOutput() # writer to write out the slices volwrite = vtk.vtkStructuredPointsWriter() volwrite.SetFileName(vtkFile) volwrite.SetInput(vol) volwrite.SetFileTypeToBinary() volwrite.Write()
VTK_DATA_ROOT = vtkGetDataRoot() # Create the RenderWindow, Renderer # ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) aPlane = vtk.vtkPlaneSource() aPlane.SetCenter(-100,-100,-100) aPlane.SetOrigin(-100,-100,-100) aPlane.SetPoint1(-90,-100,-100) aPlane.SetPoint2(-100,-90,-100) aPlane.SetNormal(0,-1,1) imageIn = vtk.vtkPNMReader() imageIn.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/earth.ppm") texture = vtk.vtkTexture() texture.SetInputConnection(imageIn.GetOutputPort()) texturePlane = vtk.vtkTextureMapToPlane() texturePlane.SetInputConnection(aPlane.GetOutputPort()) texturePlane.AutomaticPlaneGenerationOn() planeMapper = vtk.vtkPolyDataMapper() planeMapper.SetInputConnection(texturePlane.GetOutputPort()) texturedPlane = vtk.vtkActor() texturedPlane.SetMapper(planeMapper) texturedPlane.SetTexture(texture) # Add the actors to the renderer, set the background and size # ren1.AddActor(texturedPlane) #ren1 SetBackground 1 1 1
def SetUp(self): ''' Set up squadViewer ''' def OnClosing(): self.root.quit() def SetPhi(squad, win, phi): squad.SetPhiRoundness(float(phi)) win.Render() def SetTheta(squad, win, theta): squad.SetThetaRoundness(float(theta)) win.Render() def SetThickness(squad, win, thickness): squad.SetThickness(float(thickness)) win.Render() def SetTexture(actor, texture, win): if doTexture.get(): actor.SetTexture(texture) else: actor.SetTexture(None) win.Render() def SetToroid(squad, scale, win): squad.SetToroidal(toroid.get()) if toroid.get(): scale.config(state=NORMAL, fg='black') else: scale.config(state=DISABLED, fg='gray') win.Render() self.root = Tkinter.Tk() self.root.title("superquadric viewer") # Define what to do when the user explicitly closes a window. self.root.protocol("WM_DELETE_WINDOW", OnClosing) # Create render window self.tkrw = vtkTkRenderWidget(self.root, width=550, height=450) self.tkrw.BindTkRenderWidget() self.renWin = self.tkrw.GetRenderWindow() # Create parameter sliders # prs = Tkinter.Scale(self.root, from_=0, to=3.5, res=0.1, orient=HORIZONTAL, label="phi roundness") trs = Tkinter.Scale(self.root, from_=0, to=3.5, res=0.1, orient=HORIZONTAL, label="theta roundness") thicks = Tkinter.Scale(self.root, from_=0.01, to=1.0, res=0.01, orient=HORIZONTAL, label="thickness") # Create check buttons # toroid = Tkinter.IntVar() toroid.set(0) doTexture = Tkinter.IntVar() doTexture.set(0) rframe = Tkinter.Frame(self.root) torbut = Tkinter.Checkbutton(rframe, text="Toroid", variable=toroid) texbut = Tkinter.Checkbutton(rframe, text="Texture", variable=doTexture) # Put it all together # torbut.pack(padx=10, pady=5, ipadx=20, ipady=5, side=RIGHT, anchor=S) texbut.pack(padx=10, pady=5, ipadx=20, ipady=5, side=RIGHT, anchor=S) self.tkrw.grid(sticky=N + E + W + S, columnspan=2) rframe.grid(sticky=N + E + W + S) thicks.grid(sticky=N + S + E + W, padx=10, ipady=5, row=1, column=1) prs.grid(sticky=N + E + W + S, padx=10, ipady=5, row=2, column=0) trs.grid(sticky=N + E + W + S, padx=10, ipady=5, row=2, column=1) Tkinter.Pack.propagate(rframe, NO) prs.set(1.0) trs.set(0.7) thicks.set(0.3) toroid.set(1) doTexture.set(0) # Create pipeline # squad = vtk.vtkSuperquadricSource() squad.SetPhiResolution(20) squad.SetThetaResolution(25) pnmReader = vtk.vtkPNMReader() pnmReader.SetFileName(VTK_DATA_ROOT + "/Data/earth.ppm") atext = vtk.vtkTexture() atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() appendSquads = vtk.vtkAppendPolyData() appendSquads.AddInputConnection(squad.GetOutputPort()) mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(squad.GetOutputPort()) mapper.ScalarVisibilityOff() actor = vtk.vtkActor() actor.SetMapper(mapper) actor.SetTexture(atext) actor.GetProperty().SetDiffuseColor(0.5, 0.8, 0.8) actor.GetProperty().SetAmbient(0.2) actor.GetProperty().SetAmbientColor(0.2, 0.2, 0.2) squad.SetPhiRoundness(prs.get()) squad.SetThetaRoundness(trs.get()) squad.SetToroidal(toroid.get()) squad.SetThickness(thicks.get()) squad.SetScale(1, 1, 1) SetTexture(actor, atext, self.renWin) # Create renderer stuff # ren = vtk.vtkRenderer() ren.SetAmbient(1.0, 1.0, 1.0) self.renWin.AddRenderer(ren) # Add the actors to the renderer, set the background and size # ren.AddActor(actor) ren.SetBackground(0.25, 0.2, 0.2) ren.ResetCamera() ren.GetActiveCamera().Zoom(1.2) ren.GetActiveCamera().Elevation(40) ren.GetActiveCamera().Azimuth(-20) # Associate the functions with the sliders and check buttons. # prs.config(command=partial(SetPhi, squad, self.renWin)) trs.config(command=partial(SetTheta, squad, self.renWin)) thicks.config(command=partial(SetThickness, squad, self.renWin)) torbut.config(command=partial(SetToroid, squad, thicks, self.renWin)) texbut.config(command=partial(SetTexture, actor, atext, self.renWin))
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # A script to test the mask filter. # replaces a circle with a color # Image pipeline reader = vtk.vtkPNMReader() reader.ReleaseDataFlagOff() reader.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/earth.ppm") reader.Update() sphere = vtk.vtkImageEllipsoidSource() sphere.SetWholeExtent(0,511,0,255,0,0) sphere.SetCenter(128,128,0) sphere.SetRadius(80,80,1) sphere.Update() mask = vtk.vtkImageMask() mask.SetImageInputData(reader.GetOutput()) mask.SetMaskInputData(sphere.GetOutput()) mask.SetMaskedOutputValue(100,128,200) mask.NotMaskOn() mask.ReleaseDataFlagOff() mask.Update() sphere2 = vtk.vtkImageEllipsoidSource() sphere2.SetWholeExtent(0,511,0,255,0,0) sphere2.SetCenter(328,128,0) sphere2.SetRadius(80,50,1) sphere2.Update() # Test the wrapping of the output masked value
ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) tss = vtk.vtkTexturedSphereSource() tss.SetThetaResolution(18) tss.SetPhiResolution(9) earthMapper = vtk.vtkPolyDataMapper() earthMapper.SetInputConnection(tss.GetOutputPort()) earthActor = vtk.vtkActor() earthActor.SetMapper(earthMapper) # load in the texture map # atext = vtk.vtkTexture() pnmReader = vtk.vtkPNMReader() pnmReader.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/earth.ppm") atext.SetInputConnection(pnmReader.GetOutputPort()) atext.InterpolateOn() earthActor.SetTexture(atext) # create a earth source and actor # es = vtk.vtkEarthSource() es.SetRadius(0.501) es.SetOnRatio(2) earth2Mapper = vtk.vtkPolyDataMapper() earth2Mapper.SetInputConnection(es.GetOutputPort()) earth2Actor = vtk.vtkActor() earth2Actor.SetMapper(earth2Mapper) # Add the actors to the renderer, set the background and size #
def main(argv): if len(argv) < 2: print "usage: ",argv[0]," <data>" exit(1) data_fn = argv[1] mapper = vtk.vtkPolyDataMapper() if data_fn.find('.vtk') != -1: reader = vtk.vtkPolyDataReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkDelaunay2D() trianglize.SetInput(data) trianglize.Update() mapper.SetInputConnection(trianglize.GetOutputPort()) elif data_fn.find('.pgm') != -1: reader = vtk.vtkPNMReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkImageDataGeometryFilter() trianglize.SetInput(data) trianglize.Update() warp = vtk.vtkWarpScalar() warp.SetScaleFactor(0.2) # arbitrary choice warp.SetInputConnection(trianglize.GetOutputPort()) warp.Update() mapper.SetInputConnection(warp.GetOutputPort()) elif data_fn.find('.dcm') != -1: reader =vtk.vtkDICOMImageReader() reader.SetFileName(data_fn) reader.Update() data = reader.GetOutput() trianglize = vtk.vtkImageDataGeometryFilter() trianglize.SetInput(data) trianglize.Update() warp = vtk.vtkWarpScalar() #warp.SetScaleFactor(0.2) # arbitrary choice warp.SetInputConnection(trianglize.GetOutputPort()) warp.Update() mapper.SetInputConnection(warp.GetOutputPort()) else: print "unrecognized data file:",data_fn exit(1) actor = vtk.vtkActor() actor.SetMapper(mapper) renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetSize(700,700) renderWindow.AddRenderer(renderer) renderWindow.SetWindowName("heightfield") renderer.AddActor(actor) renderer.SetBackground(0.4,0.3,0.2) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) renderWindow.Render() interactor.Start()
#!/usr/bin/env python import vtk from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # Create the RenderWindow, Renderer and both Actors ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.SetMultiSamples(0) renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # load in the texture map # imageIn = vtk.vtkPNMReader() imageIn.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/earth.ppm") il = vtk.vtkImageLuminance() il.SetInputConnection(imageIn.GetOutputPort()) ic = vtk.vtkImageCast() ic.SetOutputScalarTypeToFloat() ic.SetInputConnection(il.GetOutputPort()) # smooth the image gs = vtk.vtkImageGaussianSmooth() gs.SetInputConnection(ic.GetOutputPort()) gs.SetDimensionality(2) gs.SetRadiusFactors(1, 1, 0) # gradient the image imgGradient = vtk.vtkImageGradient() imgGradient.SetInputConnection(gs.GetOutputPort()) imgGradient.SetDimensionality(2) imgMagnitude = vtk.vtkImageMagnitude()
def run(self): # Create reader self.jpeg = vtk.vtkJPEGReader() # read jpegs self.ppm = vtk.vtkPNMReader() # read pnm, ppm self.iajpeg = vtk.vtkImageActor() self.iajpeg.SetInput(self.jpeg.GetOutput()) self.iajpeg.InterpolateOff() self.iappm = vtk.vtkImageActor() self.iappm.SetInput(self.ppm.GetOutput()) self.iappm.InterpolateOff() # Create the RenderWindow, Renderer and both Actors self.ren = vtk.vtkRenderer() # Add the actors to the renderer, set the background and size self.ren.AddActor(self.iajpeg) self.ren.AddActor(self.iappm) self.ren.SetBackground(0.1, 0.2, 0.4) # create a text actor txt = vtk.vtkTextActor() txt.SetInput("Hello World!") txtprop=txt.GetTextProperty() txtprop.SetFontFamilyToArial() txtprop.SetFontSize(18) txtprop.SetColor(1,1,1) txt.SetDisplayPosition(20,30) self.txt=txt # assign actor to the renderer self.ren.AddActor(txt) self.renWin = vtk.vtkRenderWindow() self.renWin.AddRenderer(self.ren) self.renWin.SetSize(500, 500) self.iren = vtk.vtkRenderWindowInteractor() self.iren.SetRenderWindow(self.renWin) self.iren.Initialize() outval=self.readImage() if outval=="error": print " -- NO images found: Please check your input" return renderSize=self.renWin.GetSize() self.renWin.Render() self.cam1 = self.ren.GetActiveCamera() self.cam1.ParallelProjectionOn(); self.ren.ResetCameraClippingRange() self.resetCamera() # Create an image interactor style and associate it with the # interactive renderer. Then assign some callbacks with the # appropriate events. THe callbacks are implemented as Python functions. self.interactor = vtk.vtkInteractorStyleImage() self.iren.SetInteractorStyle(self.interactor) ktag=self.interactor.HasObserver("CharEvent") self.interactor.RemoveObserver(ktag) self.interactor.AddObserver("CharEvent", self.KeyPressed) self.renWin.Render() self.iren.Start() # saving qcfile at the end of the loop self.saving()
model.GetCellData().SetScalars(faceColors) model.GetPointData().SetScalars(vertexColors) ballTC = vtk.vtkTextureMapToSphere() ballTC.SetInputData(model) lut = vtk.vtkLookupTable() lut.SetNumberOfColors(3) lut.Build() lut.SetTableValue(0,0,0,0,1) lut.SetTableValue(1,1,.3,.3,1) lut.SetTableValue(2,.8,.8,.9,1) mapper = vtk.vtkDataSetMapper() mapper.SetInputConnection(ballTC.GetOutputPort()) mapper.SetScalarModeToUseCellData() mapper.SetLookupTable(lut) mapper.SetScalarRange(0,2) earth = vtk.vtkPNMReader() earth.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/earth.ppm") texture = vtk.vtkTexture() texture.SetInputConnection(earth.GetOutputPort()) soccerBall = vtk.vtkActor() soccerBall.SetMapper(mapper) soccerBall.SetTexture(texture) # Add the actors to the renderer, set the background and size # ren1.AddActor(soccerBall) ren1.SetBackground(0.1,0.2,0.4) renWin.SetSize(300,300) ren1.GetActiveCamera().SetPosition(4.19682,4.65178,6.23545) ren1.GetActiveCamera().SetFocalPoint(0,0,0) ren1.GetActiveCamera().SetViewAngle(21.4286) ren1.GetActiveCamera().SetViewUp(0.451577,-0.833646,0.317981)
def __init__(self,imagetype,prefix,extent): if imagetype == "jpg": reader = vtk.vtkJPEGReader() elif imagetype == "pnm": reader = vtk.vtkPNMReader() elif imagetype == "tif": reader = vtk.vtkTIFFReader() # todo: add more image types else: print "unknown type!" sys.exit() reader.SetDataExtent(extent) #reader.SetFilePrefix(prefix) reader.SetFilePattern(prefix) reader.SetDataSpacing(1,1,1) imageoriginal = reader.GetOutput() # pad the image with extra voxels because of vtk off by 1 # annoyance in calculating image bounds # extentcopy = extent[:] # for i in xrange(1,7,2): # extentcopy[i] += 1 # padder = vtk.vtkImageConstantPad() # padder.SetInput(imageoriginal) # padder.SetOutputWholeExtent(extentcopy) # padder.SetConstant(255) # arbitrary # self.image = padder.GetOutput() # self.image.Update() self.image = imageoriginal self.image.Update() # must use this particular mapper so color images work, also # handles off by 1 annoyance in a slightly better way. mapper = vtk.vtkFixedPointVolumeRayCastMapper() mapper.IntermixIntersectingGeometryOn() min_extent = min(extent[1:6:2]) # todo: can use a built in function for this # for very small images we need to reset the sample distance if min_extent < 50: mapper.SetSampleDistance(float(min_extent)/100) mapper.SetInteractiveSampleDistance(float(min_extent)/50) mapper.SetInput(self.image) volproperty = vtk.vtkVolumeProperty() volproperty.IndependentComponentsOff() # we initially set the opacity to a constant value of 1, but # we need the function so we can change it later self.opacity = vtk.vtkPiecewiseFunction() self.opacity.AddSegment(0,1,255,1) # the type of color function we use depends on how many # components the image has, 3 for a color image, 1 for a black # and white image num_components = self.image.GetNumberOfScalarComponents() if num_components == 1: color = vtk.vtkPiecewiseFunction() color.AddSegment(0,0,255,1) volproperty.SetColor(color) volproperty.SetScalarOpacity(self.opacity) elif num_components == 4: ## red = vtk.vtkColorTransferFunction() ## red.AddRGBSegment(0,0,0,0,255,1,0,0) ## green = vtk.vtkColorTransferFunction() ## green.AddRGBSegment(0,0,0,0,255,0,1,0) ## blue = vtk.vtkColorTransferFunction() ## blue.AddRGBSegment(0,0,0,0,255,0,0,1) ## volproperty.SetColor(0,red) ## volproperty.SetColor(1,green) ## volproperty.SetColor(2,blue) volproperty.SetScalarOpacity(self.opacity) ## volproperty.SetScalarOpacity(1,self.opacity) ## volproperty.SetScalarOpacity(2,self.opacity) else: pass print num_components volume = vtk.vtkVolume() volume.SetMapper(mapper) volume.SetProperty(volproperty) self.ren = vtk.vtkRenderer() self.ren.AddActor(volume) # on mac, this shows only the cone #self.DrawCone() #print self.ren.VisibleActorCount() #print self.ren.VisibleVolumeCount() self.ren.ResetCamera()