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) # Pipeline reader = vtk.vtkPNGReader() reader.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/fullhead15.png") iso = vtk.vtkFlyingEdges2D() iso.SetInputConnection(reader.GetOutputPort()) iso.GenerateValues(12, 500, 1150) isoMapper = vtk.vtkPolyDataMapper() isoMapper.SetInputConnection(iso.GetOutputPort()) isoMapper.ScalarVisibilityOff() isoActor = vtk.vtkActor() isoActor.SetMapper(isoMapper) isoActor.GetProperty().SetColor(1, 1, 1) outline = vtk.vtkOutlineFilter() outline.SetInputConnection(reader.GetOutputPort()) outlineMapper = vtk.vtkPolyDataMapper() outlineMapper.SetInputConnection(outline.GetOutputPort()) outlineActor = vtk.vtkActor()
# lut = vtk.vtkLookupTable() lut.SetHueRange(0.6, 0) lut.SetSaturationRange(1.0, 0) lut.SetValueRange(0.5, 1.0) # Read the data: a height field results demReader = vtk.vtkDEMReader() demReader.SetFileName(VTK_DATA_ROOT + "/Data/SainteHelens.dem") demReader.Update() lo = demReader.GetOutput().GetScalarRange()[0] hi = demReader.GetOutput().GetScalarRange()[1] # Generate contours contours = vtk.vtkFlyingEdges2D() contours.SetInputConnection(demReader.GetOutputPort()) contours.SetValue(0, (hi + lo) / 2.0) # Construct loops loops = vtk.vtkContourLoopExtraction() loops.SetInputConnection(contours.GetOutputPort()) loops.Update() bds = loops.GetOutput().GetBounds() # Place glyphs inside polygons plane = vtk.vtkPlaneSource() plane.SetXResolution(25) plane.SetYResolution(25) plane.SetOrigin(bds[0], bds[2], bds[4]) plane.SetPoint1(bds[1], bds[2], bds[4])
def main(): fileName, useContouring = get_program_parameters() if useContouring: print('Using vtkContourFilter.') else: print('Using vtkFlyingEdges2D.') colors = vtk.vtkNamedColors() # Create the RenderWindow, Renderer and Interactor. ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Create the pipeline. reader = vtk.vtkMetaImageReader() reader.SetFileName(fileName) reader.Update() extractVOI = vtk.vtkExtractVOI() extractVOI.SetInputConnection(reader.GetOutputPort()) extractVOI.SetVOI(0, 255, 0, 255, 45, 45) # scalarRange = extractVOI.GetOutput().GetScalarRange() scalarRange = [500, 1150] # print(scalarRange) contour = vtk.vtkContourFilter() flyingEdges = vtk.vtkFlyingEdges2D() isoMapper = vtk.vtkPolyDataMapper() if useContouring: contour.SetInputConnection(extractVOI.GetOutputPort()) contour.GenerateValues(12, scalarRange) isoMapper.SetInputConnection(contour.GetOutputPort()) else: flyingEdges.SetInputConnection(extractVOI.GetOutputPort()) flyingEdges.GenerateValues(12, scalarRange) isoMapper.SetInputConnection(flyingEdges.GetOutputPort()) isoMapper.ScalarVisibilityOn() isoMapper.SetScalarRange(scalarRange) isoActor = vtk.vtkActor() isoActor.SetMapper(isoMapper) isoActor.GetProperty().SetColor(colors.GetColor3d('Wheat')) outline = vtk.vtkOutlineFilter() outline.SetInputConnection(extractVOI.GetOutputPort()) outlineMapper = vtk.vtkPolyDataMapper() outlineMapper.SetInputConnection(outline.GetOutputPort()) outlineActor = vtk.vtkActor() outlineActor.SetMapper(outlineMapper) # Add the actors to the renderer, set the background and size. ren1.AddActor(outlineActor) ren1.AddActor(isoActor) ren1.SetBackground(colors.GetColor3d('SlateGray')) ren1.ResetCamera() ren1.GetActiveCamera().Dolly(1.5) ren1.ResetCameraClippingRange() renWin.SetSize(640, 640) renWin.SetWindowName('FlyingHeadSlice') renWin.Render() iren.Start()
# 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) # Pipeline reader = vtk.vtkPNGReader() reader.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/fullhead15.png") reader.Update() scalarRange = reader.GetOutput().GetPointData().GetScalars().GetRange() iso = vtk.vtkFlyingEdges2D() iso.SetInputConnection(reader.GetOutputPort()) iso.GenerateValues(12,scalarRange) isoMapper = vtk.vtkPolyDataMapper() isoMapper.SetInputConnection(iso.GetOutputPort()) isoMapper.SetScalarRange(scalarRange) isoActor = vtk.vtkActor() isoActor.SetMapper(isoMapper) isoActor.GetProperty().SetColor(1,1,1) outline = vtk.vtkOutlineFilter() outline.SetInputConnection(reader.GetOutputPort()) outlineMapper = vtk.vtkPolyDataMapper()
# lut = vtk.vtkLookupTable() lut.SetHueRange(0.6, 0) lut.SetSaturationRange(1.0, 0) lut.SetValueRange(0.5, 1.0) # Read the data: a height field results demReader = vtk.vtkDEMReader() demReader.SetFileName(VTK_DATA_ROOT + "/Data/SainteHelens.dem") demReader.Update() lo = demReader.GetOutput().GetScalarRange()[0] hi = demReader.GetOutput().GetScalarRange()[1] # Generate contours contours = vtk.vtkFlyingEdges2D() contours.SetInputConnection(demReader.GetOutputPort()) contours.SetValue(0, (hi + lo)/2.0) # Construct loops loops = vtk.vtkContourLoopExtraction() loops.SetInputConnection(contours.GetOutputPort()) loops.Update() bds = loops.GetOutput().GetBounds() # Place glyphs inside polygons plane = vtk.vtkPlaneSource() plane.SetXResolution(25) plane.SetYResolution(25) plane.SetOrigin(bds[0],bds[2],bds[4]); plane.SetPoint1(bds[1],bds[2],bds[4]);