Esempio n. 1
0
    def deserialize(name, value):
        """
		Returns the value of a given key
		"""
        if "ColorTransferFunction" in name:
            data = eval(value)
            colorTransferFunction = vtk.vtkColorTransferFunction()
            lib.ImageOperations.loadLUTFromString(data, colorTransferFunction)
            return colorTransferFunction

        # Annotations is a list of classes that can easily be
        # pickled / unpickled
        if "Annotations" in name:
            Logging.info("deserializing Annotations", kw="dataunit")
            #val = zlib.decompress(value)
            val = pickle.loads(value)
            Logging.info("unpickled %d annotations" % len(val), kw="dataunit")
            return val
        if name not in [
                "IntensityTransferFunction", "IntensityTransferFunctions",
                "AlphaTransferFunction"
        ]:
            return eval(value)
        transferFunction = vtkbxd.vtkIntensityTransferFunction()
        lst = eval(value)
        lib.ImageOperations.setFromParameterList(transferFunction, lst)
        return transferFunction
	def initialize(self, dataunit, channels, timepoints):
		"""
		Set initial values for settings based on 
					 number of channels and timepoints
		"""
		DataUnitSettings.initialize(self, dataunit, channels, timepoints)

		for i in range(channels):
			tf = vtkbxd.vtkIntensityTransferFunction()
			self.setCounted("IntensityTransferFunction", i, tf, 0)
		self.set("PreviewChannel", 1)
Esempio n. 3
0
    def initialize(self, dataunit, channels, timepoints):
        """
		Set initial values for settings based on 
					 number of channels and timepoints
		"""
        DataUnitSettings.initialize(self, dataunit, channels, timepoints)

        for i in range(channels):
            tf = vtkbxd.vtkIntensityTransferFunction()
            self.setCounted("IntensityTransferFunction", i, tf, 0)
        self.set("PreviewChannel", 1)
Esempio n. 4
0
    def __init__(self, parent, tb):
        """
		Initialization
		Parameters:
				parent    Is the parent widget of this window
		"""
        self.alphaTF = vtkbxd.vtkIntensityTransferFunction()
        self.operationName = "Merge"
        self.createItemSelection = 1
        TaskPanel.TaskPanel.__init__(self, parent, tb)

        self.oldBg = self.GetBackgroundColour()

        self.mainsizer.Layout()
        self.mainsizer.Fit(self)
	def __init__(self, parent, tb):
		"""
		Initialization
		Parameters:
				parent    Is the parent widget of this window
		"""
		self.alphaTF = vtkbxd.vtkIntensityTransferFunction()
		self.operationName = "Merge"
		self.createItemSelection = 1
		TaskPanel.TaskPanel.__init__(self, parent, tb)

		self.oldBg = self.GetBackgroundColour()
		
		self.mainsizer.Layout()
		self.mainsizer.Fit(self)
Esempio n. 6
0
    def setCombinedDataUnit(self, dataUnit):
        """
		Sets the combined dataunit that is to be processed.
					 It is then used to get the names of all the source 
					 data units and they are added to the menu.
		"""
        TaskPanel.TaskPanel.setCombinedDataUnit(self, dataUnit)
        # We add entry "Alpha Channel" to the list of channels to allow
        # the user to edit the alpha channel for the 24-bit color merging
        #self.dataUnit.setOpacityTransfer(self.alphaTF)
        self.settings.set("AlphaTransferFunction", self.alphaTF)
        ctf = self.settings.get("ColorTransferFunction")

        sources = dataUnit.getSourceDataUnits()
        totmax = 0

        for i in sources:
            minval, maxval = i.getScalarRange()
            ctf = i.getColorTransferFunction()
            ctfmin, ctfmax = ctf.GetRange()
            bitmax = 0
            sBitDepth = i.getSingleComponentBitDepth()
            if sBitDepth == 8 or sBitDepth == 12:
                bitmax = (2**i.getSingleComponentBitDepth() - 1)
            maxval = max(ctfmax, maxval, bitmax)
            if maxval > totmax:
                totmax = maxval

        self.alphaTF.SetRangeMax(int(totmax))

        for i in range(len(sources)):
            tf = vtkbxd.vtkIntensityTransferFunction()
            tf.SetRangeMax(int(totmax))
            #self.settings.setCounted("IntensityTransferFunction",i,tf,0)
            sources[i].getSettings().set("IntensityTransferFunction", tf)

        tf = sources[0].getSettings().get("IntensityTransferFunction")
        #print "\n\nSETTING ITF EDITOR FUNCTION"
        self.intensityTransferEditor.setIntensityTransferFunction(tf)

        for i in range(len(sources)):
            self.dataUnit.setOutputChannel(i, 1)
        if self.colorBtn:
            #Logging.info("Setting ctf of colorbutton to ",ctf,kw="ctf")
            self.colorBtn.setColorTransferFunction(ctf)
        else:
            Logging.info("No color button to set ctf to ", kw="ctf")
        self.restoreFromCache()
	def setCombinedDataUnit(self, dataUnit):
		"""
		Sets the combined dataunit that is to be processed.
					 It is then used to get the names of all the source 
					 data units and they are added to the menu.
		"""
		TaskPanel.TaskPanel.setCombinedDataUnit(self, dataUnit)
		# We add entry "Alpha Channel" to the list of channels to allow
		# the user to edit the alpha channel for the 24-bit color merging
		#self.dataUnit.setOpacityTransfer(self.alphaTF)
		self.settings.set("AlphaTransferFunction", self.alphaTF)
		ctf = self.settings.get("ColorTransferFunction")
		
		sources =  dataUnit.getSourceDataUnits()
		totmax = 0

		for i in sources:
			minval, maxval = i.getScalarRange()
			ctf = i.getColorTransferFunction()
			ctfmin, ctfmax = ctf.GetRange()
			bitmax = 0
			sBitDepth = i.getSingleComponentBitDepth()
			if sBitDepth == 8 or sBitDepth == 12:
				bitmax = (2**i.getSingleComponentBitDepth()-1)
			maxval = max(ctfmax, maxval, bitmax)
			if maxval > totmax:
				totmax = maxval

		self.alphaTF.SetRangeMax(int(totmax))
		
		for i in range(len(sources)):
			tf = vtkbxd.vtkIntensityTransferFunction()
			tf.SetRangeMax(int(totmax))
			#self.settings.setCounted("IntensityTransferFunction",i,tf,0)
			sources[i].getSettings().set("IntensityTransferFunction", tf)

		tf = sources[0].getSettings().get("IntensityTransferFunction")
		#print "\n\nSETTING ITF EDITOR FUNCTION"
		self.intensityTransferEditor.setIntensityTransferFunction(tf)

		for i in range(len(sources)):
			self.dataUnit.setOutputChannel(i, 1)
		if self.colorBtn:
			#Logging.info("Setting ctf of colorbutton to ",ctf,kw="ctf")
			self.colorBtn.setColorTransferFunction(ctf)
		else:
			Logging.info("No color button to set ctf to ", kw = "ctf")
		self.restoreFromCache()
	def __init__(self, n = -1):
		"""
		Constructor
		"""
		DataUnitSettings.__init__(self, n)
		#self.registerCounted("MergingColorTransferFunction",1)

		self.set("Type", "Merging")
		self.registerCounted("IntensityTransferFunction", 1)
		self.register("AlphaTransferFunction", 1)
		self.register("AlphaMode")
		self.registerCounted("PreviewChannel")
		
		tf = vtkbxd.vtkIntensityTransferFunction()
		self.set("AlphaTransferFunction", tf)
		self.set("AlphaMode", [0, 0])
Esempio n. 9
0
    def __init__(self, n=-1):
        """
		Constructor
		"""
        DataUnitSettings.__init__(self, n)
        #self.registerCounted("MergingColorTransferFunction",1)

        self.set("Type", "Merging")
        self.registerCounted("IntensityTransferFunction", 1)
        self.register("AlphaTransferFunction", 1)
        self.register("AlphaMode")
        self.registerCounted("PreviewChannel")

        tf = vtkbxd.vtkIntensityTransferFunction()
        self.set("AlphaTransferFunction", tf)
        self.set("AlphaMode", [0, 0])
Esempio n. 10
0
    def resetTransferFunctions(self, event=None):
        """
		A method to reset all the intensity transfer functions
		"""
        dataunits = self.dataUnit.getSourceDataUnits()
        for unit in dataunits:
            setting = unit.getSettings()
            minval, maxval = unit.getScalarRange()
            ctf = unit.getColorTransferFunction()
            ctfmin, ctfmax = ctf.GetRange()
            print "CTF range=", ctfmax
            bitmax = (2**unit.getSingleComponentBitDepth() - 1)
            print "bitmax=", bitmax
            maxval = max(ctfmax, maxval, bitmax)
            itf = vtkbxd.vtkIntensityTransferFunction()
            itf.SetRangeMax(maxval)
            self.alphaTF.SetRangeMax(maxval)
            setting.set("IntensityTransferFunction", itf)
	def resetTransferFunctions(self, event = None):
		"""
		A method to reset all the intensity transfer functions
		"""
		dataunits = self.dataUnit.getSourceDataUnits()
		for unit in dataunits:
			setting = unit.getSettings()
			minval, maxval = unit.getScalarRange()
			ctf = unit.getColorTransferFunction()
			ctfmin, ctfmax = ctf.GetRange()
			print "CTF range=",ctfmax
			bitmax = (2**unit.getSingleComponentBitDepth()-1)
			print "bitmax=",bitmax
			maxval = max(ctfmax, maxval,bitmax)
			itf = vtkbxd.vtkIntensityTransferFunction()
			itf.SetRangeMax(maxval)
			self.alphaTF.SetRangeMax(maxval)
			setting.set("IntensityTransferFunction", itf)
    def resetTransferFunctions(self, event=None):
        """
		A method to reset all the intensity transfer functions
		"""
        l = self.dataUnit.getNumberOfTimepoints()
        sources = self.dataUnit.getSourceDataUnits()
        for i in range(l):
            minval = min([a.getScalarRange()[0] for a in sources])
            maxval = max([a.getScalarRange()[1] for a in sources])
            bitdepth = sources[0].getBitDepth()
            minval = min(0, minval)
            maxval = max(2 ** bitdepth - 1, maxval)
            itf = vtkbxd.vtkIntensityTransferFunction()
            itf.SetRangeMax(maxval)

            self.settings.setCounted("IntensityTransferFunctions", i, itf)

        itf = self.settings.getCounted("IntensityTransferFunctions", self.timePoint)

        self.iTFEditor.setIntensityTransferFunction(itf)
Esempio n. 13
0
    def resetTransferFunctions(self, event=None):
        """
		A method to reset all the intensity transfer functions
		"""
        l = self.dataUnit.getNumberOfTimepoints()
        sources = self.dataUnit.getSourceDataUnits()
        for i in range(l):
            minval = min([a.getScalarRange()[0] for a in sources])
            maxval = max([a.getScalarRange()[1] for a in sources])
            bitdepth = sources[0].getBitDepth()
            minval = min(0, minval)
            maxval = max(2**bitdepth - 1, maxval)
            itf = vtkbxd.vtkIntensityTransferFunction()
            itf.SetRangeMax(maxval)

            self.settings.setCounted("IntensityTransferFunctions", i, itf)

        itf = self.settings.getCounted("IntensityTransferFunctions",
                                       self.timePoint)

        self.iTFEditor.setIntensityTransferFunction(itf)
	def initialize(self, dataunit, channels, timepoints):
		"""
		Set initial values for settings based on 
					 number of channels and timepoints
		"""
		DataUnitSettings.initialize(self, dataunit, channels, timepoints)
		ctf = self.get("ColorTransferFunction")

		if hasattr(dataunit, "getScalarRange"):
			minval, maxval = dataunit.getScalarRange()
			bitdepth = dataunit.getBitDepth()
		else:
			minval, maxval = dataunit.getSourceDataUnits()[0].getScalarRange()
			bitdepth = dataunit.getSourceDataUnits()[0].getBitDepth()

		minval = min(0,minval)
		maxval = max(2**bitdepth-1, maxval)

		for i in range(timepoints):
			
			tf = vtkbxd.vtkIntensityTransferFunction()
			tf.SetRangeMax(maxval)
			self.setCounted("IntensityTransferFunctions", i, tf, 0)
Esempio n. 15
0
    def initialize(self, dataunit, channels, timepoints):
        """
		Set initial values for settings based on 
					 number of channels and timepoints
		"""
        DataUnitSettings.initialize(self, dataunit, channels, timepoints)
        ctf = self.get("ColorTransferFunction")

        if hasattr(dataunit, "getScalarRange"):
            minval, maxval = dataunit.getScalarRange()
            bitdepth = dataunit.getBitDepth()
        else:
            minval, maxval = dataunit.getSourceDataUnits()[0].getScalarRange()
            bitdepth = dataunit.getSourceDataUnits()[0].getBitDepth()

        minval = min(0, minval)
        maxval = max(2**bitdepth - 1, maxval)

        for i in range(timepoints):

            tf = vtkbxd.vtkIntensityTransferFunction()
            tf.SetRangeMax(maxval)
            self.setCounted("IntensityTransferFunctions", i, tf, 0)
	def deserialize(name, value):
		"""
		Returns the value of a given key
		"""
		if "ColorTransferFunction" in name:
			data = eval(value)
			colorTransferFunction = vtk.vtkColorTransferFunction()
			lib.ImageOperations.loadLUTFromString(data, colorTransferFunction)
			return colorTransferFunction
		
		# Annotations is a list of classes that can easily be
		# pickled / unpickled
		if "Annotations" in name:
			Logging.info("deserializing Annotations", kw = "dataunit")
			#val = zlib.decompress(value)
			val = pickle.loads(value)
			Logging.info("unpickled %d annotations" % len(val), kw = "dataunit")
			return val
		if name not in ["IntensityTransferFunction", "IntensityTransferFunctions", "AlphaTransferFunction"]:
			return eval(value)
		transferFunction = vtkbxd.vtkIntensityTransferFunction()
		lst = eval(value)
		lib.ImageOperations.setFromParameterList(transferFunction, lst)
		return transferFunction
Esempio n. 17
0
    def __init__(self, parent, **kws):
        """
		Initialization
		"""
        self.parent = parent
        wx.Panel.__init__(self, parent, -1)
        self.doyield = 1
        self.calling = 0
        self.guiupdate = 0

        self.iTF = vtkbxd.vtkIntensityTransferFunction()

        self.mainsizer = wx.BoxSizer(wx.VERTICAL)

        self.canvasBox = wx.BoxSizer(wx.HORIZONTAL)
        self.contrastBox = wx.BoxSizer(wx.VERTICAL)
        self.gammaBox = wx.BoxSizer(wx.HORIZONTAL)

        self.brightnessBox = wx.BoxSizer(wx.HORIZONTAL)

        self.contrastSlider = RangedSlider.RangedSlider(self,
                                                        -1,
                                                        10000,
                                                        size=(-1, 280),
                                                        style=wx.SL_VERTICAL)
        self.contrastSlider.setSnapPoint(1.0, 0.1)
        self.contrastSlider.setRange(0, 50, 0.0001, 1.0)
        self.contrastSlider.setRange(50.01, 100, 1.0, 20.0)
        self.contrastSlider.setScaledValue(1.0)

        self.contrastLbl = wx.StaticText(self, -1, "Contrast")

        self.Bind(wx.EVT_COMMAND_SCROLL, self.setContrast, self.contrastSlider)

        self.canvas = PaintPanel(self)
        self.canvasBox.Add(self.canvas, 1, wx.ALL | wx.EXPAND, 10)
        self.canvasBox.Add(self.contrastBox)

        self.contrastEdit = wx.TextCtrl(self, -1, "1.00", size=(50, -1))
        self.contrastBox.Add(self.contrastLbl)
        self.contrastBox.Add(self.contrastEdit)
        self.contrastBox.Add(self.contrastSlider, 1, wx.TOP | wx.BOTTOM, 0)

        self.brightnessEdit = wx.TextCtrl(self,
                                          -1,
                                          "0.00",
                                          size=(70, -1),
                                          style=wx.TE_PROCESS_ENTER)
        self.gammaEdit = wx.TextCtrl(self,
                                     -1,
                                     "1.00",
                                     size=(70, -1),
                                     style=wx.TE_PROCESS_ENTER)
        self.gammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.brightnessSlider = RangedSlider.RangedSlider(
            self, -1, 5000, size=(260, -1), style=wx.SL_HORIZONTAL)
        self.brightnessSlider.setRange(0, 100, -255, 255)
        self.brightnessSlider.setSnapPoint(0.0, 0.1)
        self.brightnessSlider.setScaledValue(0.1)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setBrightness,
                  self.brightnessSlider)

        self.gammaSlider = RangedSlider.RangedSlider(self,
                                                     -1,
                                                     10000,
                                                     size=(260, -1),
                                                     style=wx.SL_HORIZONTAL)
        self.gammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.gammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.gammaSlider.setScaledValue(1.0)
        self.gammaSlider.setSnapPoint(1.0, 0.1)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setGamma, self.gammaSlider)

        self.gammaBox.Add(self.gammaSlider)
        self.gammaBox.Add(self.gammaEdit, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL)

        self.brightnessBox.Add(self.brightnessSlider)
        self.brightnessBox.Add(self.brightnessEdit, 0,
                               wx.ALIGN_CENTER_VERTICAL | wx.ALL)

        self.minValueLbl = wx.StaticText(self, wx.NewId(), "Min value:")
        self.minValueLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxValueLbl = wx.StaticText(self, wx.NewId(), "Max value:")
        self.maxValueLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.minValue = wx.TextCtrl(self,
                                    -1,
                                    style=wx.TE_PROCESS_ENTER,
                                    size=(70, -1))
        self.minValue.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxValue = wx.TextCtrl(self,
                                    -1,
                                    style=wx.TE_PROCESS_ENTER,
                                    size=(70, -1))
        self.maxValue.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        fieldsizer = wx.GridBagSizer(0, 5)
        valuesizer = wx.BoxSizer(wx.HORIZONTAL)

        fieldsizer.Add(self.minValueLbl, (0, 0))
        fieldsizer.Add(self.minValue, (0, 1))
        fieldsizer.Add(self.maxValueLbl, (0, 2))
        fieldsizer.Add(self.maxValue, (0, 3))

        self.minthresholdLbl = wx.StaticText(self, wx.NewId(),
                                             "Min threshold:")
        self.minthresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxthresholdLbl = wx.StaticText(self, wx.NewId(),
                                             "Max threshold:")
        self.maxthresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.minthreshold = wx.TextCtrl(self,
                                        -1,
                                        style=wx.TE_PROCESS_ENTER,
                                        size=(70, -1))
        self.minthreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxthreshold = wx.TextCtrl(self,
                                        -1,
                                        style=wx.TE_PROCESS_ENTER,
                                        size=(70, -1))
        self.maxthreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        fieldsizer.Add(self.minthresholdLbl, (1, 0))
        fieldsizer.Add(self.minthreshold, (1, 1))
        fieldsizer.Add(self.maxthresholdLbl, (1, 2))
        fieldsizer.Add(self.maxthreshold, (1, 3))

        #self.minProcessLbl=wx.StaticText(self,-1,"Processing\nthreshold:")
        #TODO: is following line important? at the moment minProcess is used later in code. 19.7.2007 SS
        #self.minProcess=wx.TextCtrl(self,-1,style=wx.TE_PROCESS_ENTER)

        #fieldsizer.Add(self.minProcessLbl,(2,0))
        #fieldsizer.Add(self.minProcess,(2,1))

        self.ssThresholdLbl = wx.StaticText(self, -1, "Smooth start:")
        self.ssThresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.ssThreshold = wx.TextCtrl(self,
                                       -1,
                                       "0",
                                       style=wx.TE_PROCESS_ENTER,
                                       size=(70, -1))
        self.ssThreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.ssgammaEdit = wx.TextCtrl(self,
                                       -1,
                                       "1.00",
                                       size=(70, -1),
                                       style=wx.TE_PROCESS_ENTER)
        self.ssgammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.ssgammaSlider = RangedSlider.RangedSlider(self,
                                                       -1,
                                                       10000,
                                                       size=(150, -1),
                                                       style=wx.SL_HORIZONTAL)
        self.ssgammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.ssgammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.ssgammaSlider.setScaledValue(1.0)
        self.ssgammaSlider.setSnapPoint(1.0, 0.1)
        self.ssgammaSlider.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setSSGamma, self.ssgammaSlider)

        fieldsizer.Add(self.ssThresholdLbl, (2, 0))
        fieldsizer.Add(self.ssThreshold, (2, 1))
        fieldsizer.Add(self.ssgammaSlider, (2, 2))
        fieldsizer.Add(self.ssgammaEdit, (2, 3))

        self.seThresholdLbl = wx.StaticText(self, -1, "Smooth end:")
        self.seThresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.seThreshold = wx.TextCtrl(self,
                                       -1,
                                       "255",
                                       style=wx.TE_PROCESS_ENTER,
                                       size=(70, -1))
        self.seThreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.segammaEdit = wx.TextCtrl(self,
                                       -1,
                                       "1.00",
                                       size=(70, -1),
                                       style=wx.TE_PROCESS_ENTER)
        self.segammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.segammaSlider = RangedSlider.RangedSlider(self,
                                                       -1,
                                                       10000,
                                                       size=(150, -1),
                                                       style=wx.SL_HORIZONTAL)
        self.segammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.segammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.segammaSlider.setScaledValue(1.0)
        self.segammaSlider.setSnapPoint(1.0, 0.1)
        self.segammaSlider.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setSEGamma, self.segammaSlider)

        self.seThreshold.Bind(wx.EVT_KILL_FOCUS, self.updateSE)
        self.seThreshold.Bind(wx.EVT_TEXT_ENTER, self.updateSE)
        self.ssThreshold.Bind(wx.EVT_KILL_FOCUS, self.updateSS)
        self.ssThreshold.Bind(wx.EVT_TEXT_ENTER, self.updateSS)

        fieldsizer.Add(self.seThresholdLbl, (3, 0))
        fieldsizer.Add(self.seThreshold, (3, 1))
        fieldsizer.Add(self.segammaSlider, (3, 2))
        fieldsizer.Add(self.segammaEdit, (3, 3))

        self.gammaEdit.Bind(wx.EVT_KILL_FOCUS, self.updateGamma)
        self.gammaEdit.Bind(wx.EVT_TEXT_ENTER, self.updateGamma)
        self.contrastEdit.Bind(wx.EVT_KILL_FOCUS, self.updateContrast)
        self.contrastEdit.Bind(wx.EVT_TEXT_ENTER, self.updateContrast)
        self.brightnessEdit.Bind(wx.EVT_KILL_FOCUS, self.updateBrightness)
        self.brightnessEdit.Bind(wx.EVT_TEXT_ENTER, self.updateBrightness)

        self.minValue.Bind(wx.EVT_KILL_FOCUS, self.updateMinimumValue)
        self.minValue.Bind(wx.EVT_TEXT_ENTER, self.updateMinimumValue)
        self.maxValue.Bind(wx.EVT_KILL_FOCUS, self.updateMaximumValue)
        self.maxValue.Bind(wx.EVT_TEXT_ENTER, self.updateMaximumValue)

        self.minthreshold.Bind(wx.EVT_KILL_FOCUS, self.updateMinimumThreshold)
        self.minthreshold.Bind(wx.EVT_TEXT_ENTER, self.updateMinimumThreshold)
        self.maxthreshold.Bind(wx.EVT_KILL_FOCUS, self.updateMaximumThreshold)
        self.maxthreshold.Bind(wx.EVT_TEXT_ENTER, self.updateMaximumThreshold)

        self.setMinimumThreshold(0)
        self.setMaximumThreshold(255)

        self.setMinimumValue(0)
        self.setMaximumValue(255)

        self.mainsizer.Add(self.canvasBox)

        self.gammaLbl = wx.StaticText(self, -1, "Gamma")
        self.gammaLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.brightnessLbl = wx.StaticText(self, -1, "Brightness")

        self.mainsizer.Add(self.brightnessLbl)
        self.mainsizer.Add(self.brightnessBox)

        self.mainsizer.Add(self.gammaLbl)
        self.mainsizer.Add(self.gammaBox)
        self.mainsizer.Add(fieldsizer)
        #		self.mainsizer.Add(self.defaultBtn)

        self.SetAutoLayout(True)
        self.SetSizer(self.mainsizer)
        self.mainsizer.SetSizeHints(self)

        self.updateGraph()
Esempio n. 18
0
D = "/media/sda12/Data/sample2.lsm"
t = time.time()


def elapsed():
    global t
    return "(%.2fs elapsed)" % (time.time() - t)


r1 = vtkbxd.vtkLSMReader()
r1.SetFileName(D)
r1.SetUpdateChannel(0)

d1 = r1.GetOutput()

itf1 = vtkbxd.vtkIntensityTransferFunction()
itf1.SetBrightness(50.0)

ctf1 = vtkbxd.vtkColorTransferFunction()
ctf1.AddRGBPoint(0, 0, 0, 0)
ctf1.AddRGBPoint(255.0, 0, 1.0, 0)

print "Feeding channels to merge ", elapsed()
merge = vtkbxd.vtkImageColorMerge()
#merge.SetNumberOfThreads(5)
merge.AddInput(d1)
merge.AddLookupTable(ctf1)
merge.AddIntensityTransferFunction(itf1)

itfmap = vtkbxd.vtkImageMapToIntensities()
itfmap.SetInput(d1)
import vtkbxd
import time
D="/media/sda12/Data/sample2.lsm"
t=time.time()
def elapsed():
    global t
    return "(%.2fs elapsed)"%(time.time()-t)

r1=vtkbxd.vtkLSMReader()
r1.SetFileName(D)
r1.SetUpdateChannel(0)

d1=r1.GetOutput()


itf1=vtkbxd.vtkIntensityTransferFunction()
itf1.SetBrightness(50.0)

ctf1=vtkbxd.vtkColorTransferFunction()
ctf1.AddRGBPoint(0,0,0,0)
ctf1.AddRGBPoint(255.0,0,1.0,0)


print "Feeding channels to merge ",elapsed()
merge = vtkbxd.vtkImageColorMerge()
#merge.SetNumberOfThreads(5)
merge.AddInput(d1)
merge.AddLookupTable(ctf1)
merge.AddIntensityTransferFunction(itf1)

itfmap = vtkbxd.vtkImageMapToIntensities()
    def __init__(self, parent, **kws):
        """
		Initialization
		"""
        self.parent = parent
        wx.Panel.__init__(self, parent, -1)
        self.doyield = 1
        self.calling = 0
        self.guiupdate = 0

        self.iTF = vtkbxd.vtkIntensityTransferFunction()

        self.mainsizer = wx.BoxSizer(wx.VERTICAL)

        self.canvasBox = wx.BoxSizer(wx.HORIZONTAL)
        self.contrastBox = wx.BoxSizer(wx.VERTICAL)
        self.gammaBox = wx.BoxSizer(wx.HORIZONTAL)

        self.brightnessBox = wx.BoxSizer(wx.HORIZONTAL)

        self.contrastSlider = RangedSlider.RangedSlider(self, -1, 10000, size=(-1, 280), style=wx.SL_VERTICAL)
        self.contrastSlider.setSnapPoint(1.0, 0.1)
        self.contrastSlider.setRange(0, 50, 0.0001, 1.0)
        self.contrastSlider.setRange(50.01, 100, 1.0, 20.0)
        self.contrastSlider.setScaledValue(1.0)

        self.contrastLbl = wx.StaticText(self, -1, "Contrast")

        self.Bind(wx.EVT_COMMAND_SCROLL, self.setContrast, self.contrastSlider)

        self.canvas = PaintPanel(self)
        self.canvasBox.Add(self.canvas, 1, wx.ALL | wx.EXPAND, 10)
        self.canvasBox.Add(self.contrastBox)

        self.contrastEdit = wx.TextCtrl(self, -1, "1.00", size=(50, -1))
        self.contrastBox.Add(self.contrastLbl)
        self.contrastBox.Add(self.contrastEdit)
        self.contrastBox.Add(self.contrastSlider, 1, wx.TOP | wx.BOTTOM, 0)

        self.brightnessEdit = wx.TextCtrl(self, -1, "0.00", size=(70, -1), style=wx.TE_PROCESS_ENTER)
        self.gammaEdit = wx.TextCtrl(self, -1, "1.00", size=(70, -1), style=wx.TE_PROCESS_ENTER)
        self.gammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.brightnessSlider = RangedSlider.RangedSlider(self, -1, 5000, size=(260, -1), style=wx.SL_HORIZONTAL)
        self.brightnessSlider.setRange(0, 100, -255, 255)
        self.brightnessSlider.setSnapPoint(0.0, 0.1)
        self.brightnessSlider.setScaledValue(0.1)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setBrightness, self.brightnessSlider)

        self.gammaSlider = RangedSlider.RangedSlider(self, -1, 10000, size=(260, -1), style=wx.SL_HORIZONTAL)
        self.gammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.gammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.gammaSlider.setScaledValue(1.0)
        self.gammaSlider.setSnapPoint(1.0, 0.1)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setGamma, self.gammaSlider)

        self.gammaBox.Add(self.gammaSlider)
        self.gammaBox.Add(self.gammaEdit, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL)

        self.brightnessBox.Add(self.brightnessSlider)
        self.brightnessBox.Add(self.brightnessEdit, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL)

        self.minValueLbl = wx.StaticText(self, wx.NewId(), "Min value:")
        self.minValueLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxValueLbl = wx.StaticText(self, wx.NewId(), "Max value:")
        self.maxValueLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.minValue = wx.TextCtrl(self, -1, style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.minValue.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxValue = wx.TextCtrl(self, -1, style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.maxValue.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        fieldsizer = wx.GridBagSizer(0, 5)
        valuesizer = wx.BoxSizer(wx.HORIZONTAL)

        fieldsizer.Add(self.minValueLbl, (0, 0))
        fieldsizer.Add(self.minValue, (0, 1))
        fieldsizer.Add(self.maxValueLbl, (0, 2))
        fieldsizer.Add(self.maxValue, (0, 3))

        self.minthresholdLbl = wx.StaticText(self, wx.NewId(), "Min threshold:")
        self.minthresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxthresholdLbl = wx.StaticText(self, wx.NewId(), "Max threshold:")
        self.maxthresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.minthreshold = wx.TextCtrl(self, -1, style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.minthreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.maxthreshold = wx.TextCtrl(self, -1, style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.maxthreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        fieldsizer.Add(self.minthresholdLbl, (1, 0))
        fieldsizer.Add(self.minthreshold, (1, 1))
        fieldsizer.Add(self.maxthresholdLbl, (1, 2))
        fieldsizer.Add(self.maxthreshold, (1, 3))

        # self.minProcessLbl=wx.StaticText(self,-1,"Processing\nthreshold:")
        # TODO: is following line important? at the moment minProcess is used later in code. 19.7.2007 SS
        # self.minProcess=wx.TextCtrl(self,-1,style=wx.TE_PROCESS_ENTER)

        # fieldsizer.Add(self.minProcessLbl,(2,0))
        # fieldsizer.Add(self.minProcess,(2,1))

        self.ssThresholdLbl = wx.StaticText(self, -1, "Smooth start:")
        self.ssThresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.ssThreshold = wx.TextCtrl(self, -1, "0", style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.ssThreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)

        self.ssgammaEdit = wx.TextCtrl(self, -1, "1.00", size=(70, -1), style=wx.TE_PROCESS_ENTER)
        self.ssgammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.ssgammaSlider = RangedSlider.RangedSlider(self, -1, 10000, size=(150, -1), style=wx.SL_HORIZONTAL)
        self.ssgammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.ssgammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.ssgammaSlider.setScaledValue(1.0)
        self.ssgammaSlider.setSnapPoint(1.0, 0.1)
        self.ssgammaSlider.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setSSGamma, self.ssgammaSlider)

        fieldsizer.Add(self.ssThresholdLbl, (2, 0))
        fieldsizer.Add(self.ssThreshold, (2, 1))
        fieldsizer.Add(self.ssgammaSlider, (2, 2))
        fieldsizer.Add(self.ssgammaEdit, (2, 3))

        self.seThresholdLbl = wx.StaticText(self, -1, "Smooth end:")
        self.seThresholdLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.seThreshold = wx.TextCtrl(self, -1, "255", style=wx.TE_PROCESS_ENTER, size=(70, -1))
        self.seThreshold.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.segammaEdit = wx.TextCtrl(self, -1, "1.00", size=(70, -1), style=wx.TE_PROCESS_ENTER)
        self.segammaEdit.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.segammaSlider = RangedSlider.RangedSlider(self, -1, 10000, size=(150, -1), style=wx.SL_HORIZONTAL)
        self.segammaSlider.setRange(0, 50, 0.0001, 1.0)
        self.segammaSlider.setRange(50.01, 100, 1.0, 15.0)
        self.segammaSlider.setScaledValue(1.0)
        self.segammaSlider.setSnapPoint(1.0, 0.1)
        self.segammaSlider.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.Bind(wx.EVT_COMMAND_SCROLL, self.setSEGamma, self.segammaSlider)

        self.seThreshold.Bind(wx.EVT_KILL_FOCUS, self.updateSE)
        self.seThreshold.Bind(wx.EVT_TEXT_ENTER, self.updateSE)
        self.ssThreshold.Bind(wx.EVT_KILL_FOCUS, self.updateSS)
        self.ssThreshold.Bind(wx.EVT_TEXT_ENTER, self.updateSS)

        fieldsizer.Add(self.seThresholdLbl, (3, 0))
        fieldsizer.Add(self.seThreshold, (3, 1))
        fieldsizer.Add(self.segammaSlider, (3, 2))
        fieldsizer.Add(self.segammaEdit, (3, 3))

        self.gammaEdit.Bind(wx.EVT_KILL_FOCUS, self.updateGamma)
        self.gammaEdit.Bind(wx.EVT_TEXT_ENTER, self.updateGamma)
        self.contrastEdit.Bind(wx.EVT_KILL_FOCUS, self.updateContrast)
        self.contrastEdit.Bind(wx.EVT_TEXT_ENTER, self.updateContrast)
        self.brightnessEdit.Bind(wx.EVT_KILL_FOCUS, self.updateBrightness)
        self.brightnessEdit.Bind(wx.EVT_TEXT_ENTER, self.updateBrightness)

        self.minValue.Bind(wx.EVT_KILL_FOCUS, self.updateMinimumValue)
        self.minValue.Bind(wx.EVT_TEXT_ENTER, self.updateMinimumValue)
        self.maxValue.Bind(wx.EVT_KILL_FOCUS, self.updateMaximumValue)
        self.maxValue.Bind(wx.EVT_TEXT_ENTER, self.updateMaximumValue)

        self.minthreshold.Bind(wx.EVT_KILL_FOCUS, self.updateMinimumThreshold)
        self.minthreshold.Bind(wx.EVT_TEXT_ENTER, self.updateMinimumThreshold)
        self.maxthreshold.Bind(wx.EVT_KILL_FOCUS, self.updateMaximumThreshold)
        self.maxthreshold.Bind(wx.EVT_TEXT_ENTER, self.updateMaximumThreshold)

        self.setMinimumThreshold(0)
        self.setMaximumThreshold(255)

        self.setMinimumValue(0)
        self.setMaximumValue(255)

        self.mainsizer.Add(self.canvasBox)

        self.gammaLbl = wx.StaticText(self, -1, "Gamma")
        self.gammaLbl.SetForegroundColour(scripting.COLOR_EXPERIENCED)
        self.brightnessLbl = wx.StaticText(self, -1, "Brightness")

        self.mainsizer.Add(self.brightnessLbl)
        self.mainsizer.Add(self.brightnessBox)

        self.mainsizer.Add(self.gammaLbl)
        self.mainsizer.Add(self.gammaBox)
        self.mainsizer.Add(fieldsizer)
        # 		self.mainsizer.Add(self.defaultBtn)

        self.SetAutoLayout(True)
        self.SetSizer(self.mainsizer)
        self.mainsizer.SetSizeHints(self)

        self.updateGraph()