Esempio n. 1
0
def execute_limited(pipeline, updateExtent=None):
    """
	
	"""
    global memLimit, noLimits, alwaysSplit
    global numberOfDivisions
    global executing
    #retval = pipeline.GetOutput()
    #if updateExtent and not scripting.wantWholeDataset:
    #	retval.SetUpdateExtent(updateExtent)
    #pipeline.Update()
    #return pipeline.GetOutput()

    if not memLimit:
        get_memory_limit()
    if noLimits or (not memLimit and not alwaysSplit):
        streamer = vtk.vtkImageDataStreamer()
        streamer.SetNumberOfStreamDivisions(1)

    if alwaysSplit:
        Logging.info("Using vtkImageDataStreamer with %d divisions" %
                     numberOfDivisions,
                     kw="pipeline")
        streamer = vtk.vtkImageDataStreamer()
        streamer.SetNumberOfStreamDivisions(numberOfDivisions)
    elif (memLimit and not noLimits):
        Logging.info(
            "Using vtkMemoryLimitImageDataStreamer with with limit=%dMB" %
            memLimit,
            kw="pipeline")
        streamer = vtk.vtkMemoryLimitImageDataStreamer()
        streamer.SetMemoryLimit(1024 * memLimit)

    streamer.GetExtentTranslator().SetSplitModeToZSlab()

    executing = 1
    streamer.SetInputConnection(pipeline.GetOutputPort())
    retval = streamer.GetOutput()

    if updateExtent and not scripting.wantWholeDataset:
        Logging.info("Setting update extent to ", updateExtent, kw="pipeline")
        retval.SetUpdateExtent(updateExtent)

    print "Update extent now=", retval.GetUpdateExtent()
    streamer.Update()
    print "Done"
    executing = 0
    return retval
Esempio n. 2
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkImageDataStreamer(), 'Processing.',
         ('vtkImageData',), ('vtkImageData',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
def execute_limited(pipeline, updateExtent=None):
    """
	
	"""
    global memLimit, noLimits, alwaysSplit
    global numberOfDivisions
    global executing
    # retval = pipeline.GetOutput()
    # if updateExtent and not scripting.wantWholeDataset:
    # 	retval.SetUpdateExtent(updateExtent)
    # pipeline.Update()
    # return pipeline.GetOutput()

    if not memLimit:
        get_memory_limit()
    if noLimits or (not memLimit and not alwaysSplit):
        streamer = vtk.vtkImageDataStreamer()
        streamer.SetNumberOfStreamDivisions(1)

    if alwaysSplit:
        Logging.info("Using vtkImageDataStreamer with %d divisions" % numberOfDivisions, kw="pipeline")
        streamer = vtk.vtkImageDataStreamer()
        streamer.SetNumberOfStreamDivisions(numberOfDivisions)
    elif memLimit and not noLimits:
        Logging.info("Using vtkMemoryLimitImageDataStreamer with with limit=%dMB" % memLimit, kw="pipeline")
        streamer = vtk.vtkMemoryLimitImageDataStreamer()
        streamer.SetMemoryLimit(1024 * memLimit)

    streamer.GetExtentTranslator().SetSplitModeToZSlab()

    executing = 1
    streamer.SetInputConnection(pipeline.GetOutputPort())
    retval = streamer.GetOutput()

    if updateExtent and not scripting.wantWholeDataset:
        Logging.info("Setting update extent to ", updateExtent, kw="pipeline")
        retval.SetUpdateExtent(updateExtent)

    print "Update extent now=", retval.GetUpdateExtent()
    streamer.Update()
    print "Done"
    executing = 0
    return retval
Esempio n. 4
0
    def __init__(self, module_manager):
        ModuleBase.__init__(self, module_manager)

        self._image_data_streamer = vtk.vtkImageDataStreamer()
        self._poly_data_streamer = vtk.vtkPolyDataStreamer()

        NoConfigModuleMixin.__init__(self, 
                {'module (self)' : self,
                 'vtkImageDataStreamer' : self._image_data_streamer,
                 'vtkPolyDataStreamer' : self._poly_data_streamer})

        module_utils.setup_vtk_object_progress(self,
                self._image_data_streamer, 'Streaming image data')

        self._current_mode = None

        self.sync_module_logic_with_config()
    rangeStart = expr.expr(globals(), locals(), ["rangeStart", "+", "0.1"])
    rangeEnd = expr.expr(globals(), locals(), ["rangeEnd", "+", "0.1"])
    if (rangeEnd > 1.0):
        rangeStart = 0.0
        rangeEnd = 0.2
        pass
    LUT.SetHueRange(rangeStart, rangeEnd)
    LUT.Build()


mapToRGBA = vtk.vtkImageMapToColors()
mapToRGBA.SetInputConnection(reader.GetOutputPort())
mapToRGBA.SetOutputFormatToRGBA()
mapToRGBA.SetLookupTable(LUT)
mapToRGBA.AddObserver("EndEvent", changeLUT)
imageStreamer = vtk.vtkImageDataStreamer()
imageStreamer.SetInputConnection(mapToRGBA.GetOutputPort())
imageStreamer.SetNumberOfStreamDivisions(8)
# make sure we get the correct translator.
imageStreamer.UpdateInformation()
imageStreamer.GetExtentTranslator().SetSplitModeToBlock()
# set the window/level to 255.0/127.5 to view full range
viewer = vtk.vtkImageViewer()
viewer.SetInputConnection(imageStreamer.GetOutputPort())
viewer.SetColorWindow(255.0)
viewer.SetColorLevel(127.5)
viewer.SetZSlice(50)
viewer.Render()
#make interface
viewer.Render()
# --- end of script --
merge = vtk.vtkImageColorMerge()
#merge.AddInput(mip1.GetOutput())
#merge.AddInput(mip2.GetOutput())
merge.AddInput(d1)
merge.AddInput(d2)

merge.AddLookupTable(ctf1)
merge.AddLookupTable(ctf2)
#merge.DebugOn()
#merge.AddIntensityTransferFunction(itf1)
#merge.AddIntensityTransferFunction(itf2)
#merge.GetOutput().ReleaseDataFlagOn()

#merge.Update()

streamer = vtk.vtkImageDataStreamer()
streamer.SetNumberOfStreamDivisions(1)
streamer.SetInput(merge.GetOutput())
streamer.GetExtentTranslator().SetSplitModeToZSlab()
streamer.Update()
data = streamer.GetOutput()

mip = vtk.vtkImageSimpleMIP()
mip.SetInput(data)


writer=vtk.vtkPNGWriter()
writer.SetFileName("Selli_BIG.png")
writer.SetInput(mip.GetOutput())
writer.Write()
print "Wrote PNG ",elapsed()