本文整理汇总了Python中volumina.api.ColortableLayer.opacity方法的典型用法代码示例。如果您正苦于以下问题:Python ColortableLayer.opacity方法的具体用法?Python ColortableLayer.opacity怎么用?Python ColortableLayer.opacity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类volumina.api.ColortableLayer
的用法示例。
在下文中一共展示了ColortableLayer.opacity方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
layers = []
op = self.topLevelOperatorView
binct = [QColor(Qt.black), QColor(Qt.white)]
#binct[0] = 0
ct = create_default_16bit()
# associate label 0 with black/transparent?
ct[0] = 0
# Show the cached output, since it goes through a blocked cache
if op.CachedOutput.ready():
outputSrc = LazyflowSource(op.CachedOutput)
outputLayer = ColortableLayer(outputSrc, ct)
outputLayer.name = "Connected Components"
outputLayer.visible = False
outputLayer.opacity = 1.0
outputLayer.setToolTip("Results of connected component analysis")
layers.append(outputLayer)
if op.Input.ready():
rawSrc = LazyflowSource(op.Input)
rawLayer = ColortableLayer(outputSrc, binct)
#rawLayer = self.createStandardLayerFromSlot(op.Input)
rawLayer.name = "Raw data"
rawLayer.visible = True
rawLayer.opacity = 1.0
layers.append(rawLayer)
return layers
示例2: _initPredictionLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def _initPredictionLayers(self, predictionSlot):
layers = []
opLane = self.topLevelOperatorView
colors = opLane.PmapColors.value
names = opLane.LabelNames.value
# Use a slicer to provide a separate slot for each channel layer
#opSlicer = OpMultiArraySlicer2( parent=opLane.viewed_operator() )
#opSlicer.Input.connect( predictionSlot )
#opSlicer.AxisFlag.setValue('c')
if predictionSlot.ready() :
from volumina import colortables
predictLayer = ColortableLayer(LazyflowSource(predictionSlot), colorTable = colortables.jet(), normalize = 'auto')
#predictLayer = AlphaModulatedLayer( predictsrc,
# tintColor=QColor(*colors[channel]),
# range=(0.0, 1.0),
# normalize=(0.0, 1.0) )
predictLayer.opacity = 0.25
predictLayer.visible = True
predictLayer.name = "Prediction"
layers.append(predictLayer)
return layers
示例3: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
mainOperator = self.topLevelOperatorView
layers = []
if mainOperator.ObjectCenterImage.ready():
self.centerimagesrc = LazyflowSource(mainOperator.ObjectCenterImage)
redct = [0, QColor(255, 0, 0).rgba()]
layer = ColortableLayer(self.centerimagesrc, redct)
layer.name = "Object centers"
layer.setToolTip("Object center positions, marked with a little red cross")
layer.visible = False
layers.append(layer)
ct = colortables.create_default_16bit()
if mainOperator.LabelImage.ready():
self.objectssrc = LazyflowSource(mainOperator.LabelImage)
self.objectssrc.setObjectName("LabelImage LazyflowSrc")
ct[0] = QColor(0, 0, 0, 0).rgba() # make 0 transparent
layer = ColortableLayer(self.objectssrc, ct)
layer.name = "Objects (connected components)"
layer.setToolTip("Segmented objects, shown in different colors")
layer.visible = False
layer.opacity = 0.5
layers.append(layer)
# white foreground on transparent background, even for labeled images
binct = [QColor(255, 255, 255, 255).rgba()]*65536
binct[0] = 0
if mainOperator.BinaryImage.ready():
self.binaryimagesrc = LazyflowSource(mainOperator.BinaryImage)
self.binaryimagesrc.setObjectName("Binary LazyflowSrc")
layer = ColortableLayer(self.binaryimagesrc, binct)
layer.name = "Binary image"
layer.setToolTip("Segmented objects, binary mask")
layers.append(layer)
## raw data layer
self.rawsrc = None
self.rawsrc = LazyflowSource(mainOperator.RawImage)
self.rawsrc.setObjectName("Raw Lazyflow Src")
layerraw = GrayscaleLayer(self.rawsrc)
layerraw.name = "Raw data"
layers.insert(len(layers), layerraw)
mainOperator.RawImage.notifyReady(self._onReady)
self.__cleanup_fns.append( partial( mainOperator.RawImage.unregisterReady, self._onReady ) )
mainOperator.RawImage.notifyMetaChanged(self._onMetaChanged)
self.__cleanup_fns.append( partial( mainOperator.RawImage.unregisterMetaChanged, self._onMetaChanged ) )
if mainOperator.BinaryImage.meta.shape:
self.editor.dataShape = mainOperator.BinaryImage.meta.shape
mainOperator.BinaryImage.notifyMetaChanged(self._onMetaChanged)
self.__cleanup_fns.append( partial( mainOperator.BinaryImage.unregisterMetaChanged, self._onMetaChanged ) )
return layers
示例4: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
"""
Called by our base class when one of our data slots has changed.
This function creates a layer for each slot we want displayed in the volume editor.
"""
# Base class provides the label layer.
layers = super(Counting3dGui, self).setupLayers()
# Add each of the predictions
labels = self.labelListData
slots = {'density' : self.op.Density}
for name, slot in slots.items():
if slot.ready():
from volumina import colortables
layer = ColortableLayer(LazyflowSource(slot), colorTable = colortables.jet(), normalize = 'auto')
layer.name = name
layers.append(layer)
boxlabelsrc = LazyflowSinkSource(self.op.BoxLabelImages,self.op.BoxLabelInputs )
boxlabellayer = ColortableLayer(boxlabelsrc, colorTable = self._colorTable16, direct = False)
boxlabellayer.name = "boxLabels"
boxlabellayer.opacity = 0.3
layers.append(boxlabellayer)
self.boxlabelsrc = boxlabelsrc
inputDataSlot = self.topLevelOperatorView.InputImages
if inputDataSlot.ready():
inputLayer = self.createStandardLayerFromSlot( inputDataSlot )
inputLayer.name = "Input Data"
inputLayer.visible = True
inputLayer.opacity = 1.0
def toggleTopToBottom():
index = self.layerstack.layerIndex( inputLayer )
self.layerstack.selectRow( index )
if index == 0:
self.layerstack.moveSelectedToBottom()
else:
self.layerstack.moveSelectedToTop()
inputLayer.shortcutRegistration = (
"Prediction Layers",
"Bring Input To Top/Bottom",
QShortcut( QKeySequence("i"), self.viewerControlWidget(), toggleTopToBottom),
inputLayer )
layers.append(inputLayer)
self.handleLabelSelectionChange()
return layers
示例5: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
mainOperator = self.topLevelOperatorView
layers = []
if mainOperator.ObjectCenterImage.ready():
self.centerimagesrc = LazyflowSource(mainOperator.ObjectCenterImage)
#layer = RGBALayer(red=ConstantSource(255), alpha=self.centerimagesrc)
redct = [0, QColor(255, 0, 0).rgba()]
layer = ColortableLayer(self.centerimagesrc, redct)
layer.name = "Object Centers"
layer.visible = False
layers.append(layer)
ct = colortables.create_default_16bit()
if mainOperator.LabelImage.ready():
self.objectssrc = LazyflowSource(mainOperator.LabelImage)
self.objectssrc.setObjectName("LabelImage LazyflowSrc")
ct[0] = QColor(0, 0, 0, 0).rgba() # make 0 transparent
layer = ColortableLayer(self.objectssrc, ct)
layer.name = "Label Image"
layer.visible = False
layer.opacity = 0.5
layers.append(layer)
# white foreground on transparent background
binct = [QColor(0, 0, 0, 0).rgba(), QColor(255, 255, 255, 255).rgba()]
if mainOperator.BinaryImage.ready():
self.binaryimagesrc = LazyflowSource(mainOperator.BinaryImage)
self.binaryimagesrc.setObjectName("Binary LazyflowSrc")
layer = ColortableLayer(self.binaryimagesrc, binct)
layer.name = "Binary Image"
layers.append(layer)
## raw data layer
self.rawsrc = None
self.rawsrc = LazyflowSource(mainOperator.RawImage)
self.rawsrc.setObjectName("Raw Lazyflow Src")
layerraw = GrayscaleLayer(self.rawsrc)
layerraw.name = "Raw"
layers.insert(len(layers), layerraw)
mainOperator.RawImage.notifyReady(self._onReady)
mainOperator.RawImage.notifyMetaChanged(self._onMetaChanged)
if mainOperator.BinaryImage.meta.shape:
self.editor.dataShape = mainOperator.BinaryImage.meta.shape
mainOperator.BinaryImage.notifyMetaChanged(self._onMetaChanged)
return layers
示例6: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers( self ):
layers = []
self.ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
self.ct[255] = QColor(0,0,0,255).rgba() # make -1 black
self.ct[-1] = QColor(0,0,0,255).rgba()
self.trackingsrc = LazyflowSource( self.topLevelOperatorView.TrackImage )
trackingLayer = ColortableLayer( self.trackingsrc, self.ct )
trackingLayer.name = "Manual Tracking"
trackingLayer.visible = True
trackingLayer.opacity = 0.8
def toggleTrackingVisibility():
trackingLayer.visible = not trackingLayer.visible
trackingLayer.shortcutRegistration = (
"Layer Visibilities",
"Toggle Manual Tracking Layer Visibility",
QtGui.QShortcut( QtGui.QKeySequence("e"), self.viewerControlWidget(), toggleTrackingVisibility),
trackingLayer )
layers.append(trackingLayer)
ct = colortables.create_random_16bit()
ct[1] = QColor(230,0,0,150).rgba()
ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
self.untrackedsrc = LazyflowSource( self.topLevelOperatorView.UntrackedImage )
untrackedLayer = ColortableLayer( self.untrackedsrc, ct )
untrackedLayer.name = "Untracked Objects"
untrackedLayer.visible = False
untrackedLayer.opacity = 0.8
layers.append(untrackedLayer)
self.objectssrc = LazyflowSource( self.topLevelOperatorView.BinaryImage )
ct = colortables.create_random_16bit()
ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
ct[1] = QColor(255,255,0,100).rgba()
objLayer = ColortableLayer( self.objectssrc, ct )
objLayer.name = "Objects"
objLayer.opacity = 0.8
objLayer.visible = True
def toggleObjectVisibility():
objLayer.visible = not objLayer.visible
objLayer.shortcutRegistration = (
"Layer Visibilities",
"Toggle Objects Layer Visibility",
QtGui.QShortcut( QtGui.QKeySequence("r"), self.viewerControlWidget(), toggleObjectVisibility),
objLayer )
layers.append(objLayer)
## raw data layer
self.rawsrc = None
self.rawsrc = LazyflowSource( self.mainOperator.RawImage )
rawLayer = GrayscaleLayer( self.rawsrc )
rawLayer.name = "Raw"
layers.insert( len(layers), rawLayer )
if self.topLevelOperatorView.LabelImage.meta.shape:
self.editor.dataShape = self.topLevelOperatorView.LabelImage.meta.shape
self.topLevelOperatorView.RawImage.notifyReady( self._onReady )
self.topLevelOperatorView.RawImage.notifyMetaChanged( self._onMetaChanged )
self._setDivisionsList()
self._setActiveTrackList()
return layers
示例7: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
layers = []
op = self.topLevelOperatorView
binct = [QColor(Qt.black), QColor(Qt.white)]
ct = self._createDefault16ColorColorTable()
ct[0]=0
# Show the cached output, since it goes through a blocked cache
if op.CachedOutput.ready():
outputSrc = LazyflowSource(op.CachedOutput)
outputLayer = ColortableLayer(outputSrc, binct)
outputLayer.name = "Output (Cached)"
outputLayer.visible = False
outputLayer.opacity = 1.0
layers.append(outputLayer)
#FIXME: We have to do that, because lazyflow doesn't have a way to make an operator partially ready
curIndex = self._drawer.tabWidget.currentIndex()
if curIndex==1:
if op.BigRegions.ready():
lowThresholdSrc = LazyflowSource(op.BigRegions)
lowThresholdLayer = ColortableLayer(lowThresholdSrc, binct)
lowThresholdLayer.name = "Big Regions"
lowThresholdLayer.visible = False
lowThresholdLayer.opacity = 1.0
layers.append(lowThresholdLayer)
if op.FilteredSmallLabels.ready():
filteredSmallLabelsLayer = self.createStandardLayerFromSlot( op.FilteredSmallLabels )
filteredSmallLabelsLayer.name = "Filtered Small Labels"
filteredSmallLabelsLayer.visible = False
filteredSmallLabelsLayer.opacity = 1.0
layers.append(filteredSmallLabelsLayer)
if op.SmallRegions.ready():
highThresholdSrc = LazyflowSource(op.SmallRegions)
highThresholdLayer = ColortableLayer(highThresholdSrc, binct)
highThresholdLayer.name = "Small Regions"
highThresholdLayer.visible = False
highThresholdLayer.opacity = 1.0
layers.append(highThresholdLayer)
elif curIndex==0:
if op.BeforeSizeFilter.ready():
thSrc = LazyflowSource(op.BeforeSizeFilter)
thLayer = ColortableLayer(thSrc, binct)
thLayer.name = "Thresholded Labels"
thLayer.visible = False
thLayer.opacity = 1.0
layers.append(thLayer)
# Selected input channel, smoothed.
if op.Smoothed.ready():
smoothedLayer = self.createStandardLayerFromSlot( op.Smoothed )
smoothedLayer.name = "Smoothed Input"
smoothedLayer.visible = True
smoothedLayer.opacity = 1.0
layers.append(smoothedLayer)
# Show the selected channel
if op.InputChannel.ready():
drange = op.InputChannel.meta.drange
if drange is None:
drange = (0.0, 1.0)
channelSrc = LazyflowSource(op.InputChannel)
channelLayer = AlphaModulatedLayer( channelSrc,
tintColor=QColor(self._channelColors[op.Channel.value]),
range=drange,
normalize=drange )
channelLayer.name = "Input Ch{}".format(op.Channel.value)
channelLayer.opacity = 1.0
#channelLayer.visible = channelIndex == op.Channel.value # By default, only the selected input channel is visible.
layers.append(channelLayer)
# Show the raw input data
rawSlot = self.topLevelOperatorView.RawInput
if rawSlot.ready():
rawLayer = self.createStandardLayerFromSlot( rawSlot )
rawLayer.name = "Raw Data"
rawLayer.visible = True
rawLayer.opacity = 1.0
layers.append(rawLayer)
return layers
示例8: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
"""
Called by our base class when one of our data slots has changed.
This function creates a layer for each slot we want displayed in the volume editor.
"""
# Base class provides the label layer.
layers = super(PixelClassificationGui, self).setupLayers()
ActionInfo = ShortcutManager.ActionInfo
if ilastik_config.getboolean('ilastik', 'debug'):
# Add the label projection layer.
labelProjectionSlot = self.topLevelOperatorView.opLabelPipeline.opLabelArray.Projection2D
if labelProjectionSlot.ready():
projectionSrc = LazyflowSource(labelProjectionSlot)
try:
# This colortable requires matplotlib
from volumina.colortables import jet
projectionLayer = ColortableLayer( projectionSrc,
colorTable=[QColor(0,0,0,128).rgba()]+jet(N=255),
normalize=(0.0, 1.0) )
except (ImportError, RuntimeError):
pass
else:
projectionLayer.name = "Label Projection"
projectionLayer.visible = False
projectionLayer.opacity = 1.0
layers.append(projectionLayer)
# Show the mask over everything except labels
maskSlot = self.topLevelOperatorView.PredictionMasks
if maskSlot.ready():
maskLayer = self._create_binary_mask_layer_from_slot( maskSlot )
maskLayer.name = "Mask"
maskLayer.visible = True
maskLayer.opacity = 1.0
layers.append( maskLayer )
# Add the uncertainty estimate layer
uncertaintySlot = self.topLevelOperatorView.UncertaintyEstimate
if uncertaintySlot.ready():
uncertaintySrc = LazyflowSource(uncertaintySlot)
uncertaintyLayer = AlphaModulatedLayer( uncertaintySrc,
tintColor=QColor( Qt.cyan ),
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
uncertaintyLayer.name = "Uncertainty"
uncertaintyLayer.visible = False
uncertaintyLayer.opacity = 1.0
uncertaintyLayer.shortcutRegistration = ( "u", ActionInfo( "Prediction Layers",
"Uncertainty",
"Show/Hide Uncertainty",
uncertaintyLayer.toggleVisible,
self.viewerControlWidget(),
uncertaintyLayer ) )
layers.append(uncertaintyLayer)
labels = self.labelListData
# Add each of the segmentations
for channel, segmentationSlot in enumerate(self.topLevelOperatorView.SegmentationChannels):
if segmentationSlot.ready() and channel < len(labels):
ref_label = labels[channel]
segsrc = LazyflowSource(segmentationSlot)
segLayer = AlphaModulatedLayer( segsrc,
tintColor=ref_label.pmapColor(),
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
segLayer.opacity = 1
segLayer.visible = False #self.labelingDrawerUi.liveUpdateButton.isChecked()
segLayer.visibleChanged.connect(self.updateShowSegmentationCheckbox)
def setLayerColor(c, segLayer_=segLayer, initializing=False):
if not initializing and segLayer_ not in self.layerstack:
# This layer has been removed from the layerstack already.
# Don't touch it.
return
segLayer_.tintColor = c
self._update_rendering()
def setSegLayerName(n, segLayer_=segLayer, initializing=False):
if not initializing and segLayer_ not in self.layerstack:
# This layer has been removed from the layerstack already.
# Don't touch it.
return
oldname = segLayer_.name
newName = "Segmentation (%s)" % n
segLayer_.name = newName
if not self.render:
return
if oldname in self._renderedLayers:
label = self._renderedLayers.pop(oldname)
self._renderedLayers[newName] = label
setSegLayerName(ref_label.name, initializing=True)
ref_label.pmapColorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setSegLayerName)
#.........这里部分代码省略.........
示例9: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
# Base class provides the label layer.
layers = super(ObjectClassificationGui, self).setupLayers()
binarySlot = self.op.BinaryImages
segmentedSlot = self.op.SegmentationImages
rawSlot = self.op.RawImages
#This is just for colors
labels = self.labelListData
for channel, probSlot in enumerate(self.op.PredictionProbabilityChannels):
if probSlot.ready() and channel < len(labels):
ref_label = labels[channel]
probsrc = LazyflowSource(probSlot)
probLayer = AlphaModulatedLayer( probsrc,
tintColor=ref_label.pmapColor(),
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
probLayer.opacity = 0.25
#probLayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
#False, because it's much faster to draw predictions without these layers below
probLayer.visible = False
probLayer.setToolTip("Probability that the object belongs to class {}".format(channel+1))
def setLayerColor(c, predictLayer_=probLayer, ch=channel, initializing=False):
if not initializing and predictLayer_ not in self.layerstack:
# This layer has been removed from the layerstack already.
# Don't touch it.
return
predictLayer_.tintColor = c
def setLayerName(n, predictLayer_=probLayer, initializing=False):
if not initializing and predictLayer_ not in self.layerstack:
# This layer has been removed from the layerstack already.
# Don't touch it.
return
newName = "Prediction for %s" % n
predictLayer_.name = newName
setLayerName(ref_label.name, initializing=True)
ref_label.pmapColorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setLayerName)
layers.append(probLayer)
predictionSlot = self.op.PredictionImages
if predictionSlot.ready():
predictsrc = LazyflowSource(predictionSlot)
self._colorTable16_forpmaps[0] = 0
predictLayer = ColortableLayer(predictsrc,
colorTable=self._colorTable16_forpmaps)
predictLayer.name = self.PREDICTION_LAYER_NAME
predictLayer.ref_object = None
predictLayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
predictLayer.opacity = 0.5
predictLayer.setToolTip("Classification results, assigning a label to each object")
# This weakref stuff is a little more fancy than strictly necessary.
# The idea is to use the weakref's callback to determine when this layer instance is destroyed by the garbage collector,
# and then we disconnect the signal that updates that layer.
weak_predictLayer = weakref.ref( predictLayer )
colortable_changed_callback = bind( self._setPredictionColorTable, weak_predictLayer )
self._labelControlUi.labelListModel.dataChanged.connect( colortable_changed_callback )
weak_predictLayer2 = weakref.ref( predictLayer, partial(self._disconnect_dataChange_callback, colortable_changed_callback) )
# We have to make sure the weakref isn't destroyed because it is responsible for calling the callback.
# Therefore, we retain it by adding it to a list.
self._retained_weakrefs.append( weak_predictLayer2 )
# Ensure we're up-to-date (in case this is the first time the prediction layer is being added.
for row in range( self._labelControlUi.labelListModel.rowCount() ):
self._setPredictionColorTableForRow( predictLayer, row )
# put right after Labels, so that it is visible after hitting "live
# predict".
layers.insert(1, predictLayer)
badObjectsSlot = self.op.BadObjectImages
if badObjectsSlot.ready():
ct_black = [0, QColor(Qt.black).rgba()]
badSrc = LazyflowSource(badObjectsSlot)
badLayer = ColortableLayer(badSrc, colorTable = ct_black)
badLayer.name = "Ambiguous objects"
badLayer.setToolTip("Objects with infinite or invalid values in features")
badLayer.visible = False
layers.append(badLayer)
if segmentedSlot.ready():
ct = colortables.create_default_16bit()
objectssrc = LazyflowSource(segmentedSlot)
ct[0] = QColor(0, 0, 0, 0).rgba() # make 0 transparent
objLayer = ColortableLayer(objectssrc, ct)
objLayer.name = "Objects"
objLayer.opacity = 0.5
objLayer.visible = False
objLayer.setToolTip("Segmented objects (labeled image/connected components)")
layers.append(objLayer)
if binarySlot.ready():
#.........这里部分代码省略.........
示例10: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
layers = []
op = self.topLevelOperatorView
binct = [QColor(Qt.black), QColor(Qt.white)]
binct[0] = 0
ct = create_default_16bit()
ct[0]=0
# Show the cached output, since it goes through a blocked cache
if op.CachedOutput.ready():
outputSrc = LazyflowSource(op.CachedOutput)
outputLayer = ColortableLayer(outputSrc, ct)
outputLayer.name = "Final output"
outputLayer.visible = False
outputLayer.opacity = 1.0
outputLayer.setToolTip("Results of thresholding and size filter")
layers.append(outputLayer)
if op.InputImage.ready():
numChannels = op.InputImage.meta.getTaggedShape()['c']
for channel in range(numChannels):
channelProvider = OpSingleChannelSelector(parent=op.InputImage.getRealOperator().parent)
channelProvider.Input.connect(op.InputImage)
channelProvider.Index.setValue( channel )
channelSrc = LazyflowSource( channelProvider.Output )
inputChannelLayer = AlphaModulatedLayer( channelSrc,
tintColor=QColor(self._channelColors[channel]),
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
inputChannelLayer.opacity = 0.5
inputChannelLayer.visible = True
inputChannelLayer.name = "Input Channel " + str(channel)
inputChannelLayer.setToolTip("Select input channel " + str(channel) + \
" if this prediction image contains the objects of interest.")
layers.append(inputChannelLayer)
if self._showDebug:
#FIXME: We have to do that, because lazyflow doesn't have a way to make an operator partially ready
curIndex = self._drawer.tabWidget.currentIndex()
if curIndex==1:
if op.BigRegions.ready():
lowThresholdSrc = LazyflowSource(op.BigRegions)
lowThresholdLayer = ColortableLayer(lowThresholdSrc, binct)
lowThresholdLayer.name = "After low threshold"
lowThresholdLayer.visible = False
lowThresholdLayer.opacity = 1.0
lowThresholdLayer.setToolTip("Results of thresholding with the low pixel value threshold")
layers.append(lowThresholdLayer)
if op.FilteredSmallLabels.ready():
filteredSmallLabelsLayer = self.createStandardLayerFromSlot( op.FilteredSmallLabels )
filteredSmallLabelsLayer.name = "After high threshold and size filter"
filteredSmallLabelsLayer.visible = False
filteredSmallLabelsLayer.opacity = 1.0
filteredSmallLabelsLayer.setToolTip("Results of thresholding with the high pixel value threshold,\
followed by the size filter")
layers.append(filteredSmallLabelsLayer)
if op.SmallRegions.ready():
highThresholdSrc = LazyflowSource(op.SmallRegions)
highThresholdLayer = ColortableLayer(highThresholdSrc, binct)
highThresholdLayer.name = "After high threshold"
highThresholdLayer.visible = False
highThresholdLayer.opacity = 1.0
highThresholdLayer.setToolTip("Results of thresholding with the high pixel value threshold")
layers.append(highThresholdLayer)
elif curIndex==0:
if op.BeforeSizeFilter.ready():
thSrc = LazyflowSource(op.BeforeSizeFilter)
thLayer = ColortableLayer(thSrc, ct)
thLayer.name = "Before size filter"
thLayer.visible = False
thLayer.opacity = 1.0
thLayer.setToolTip("Results of thresholding before the size filter is applied")
layers.append(thLayer)
# Selected input channel, smoothed.
if op.Smoothed.ready():
smoothedLayer = self.createStandardLayerFromSlot( op.Smoothed )
smoothedLayer.name = "Smoothed input"
smoothedLayer.visible = True
smoothedLayer.opacity = 1.0
smoothedLayer.setToolTip("Selected channel data, smoothed with a Gaussian with user-defined sigma")
layers.append(smoothedLayer)
# Show the raw input data
rawSlot = self.topLevelOperatorView.RawInput
if rawSlot.ready():
rawLayer = self.createStandardLayerFromSlot( rawSlot )
rawLayer.name = "Raw data"
rawLayer.visible = True
rawLayer.opacity = 1.0
layers.append(rawLayer)
return layers
示例11: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers( self ):
layers = []
# use same colortable for the following two generated layers: the merger
# and the tracking layer
self.tracking_colortable = colortables.create_random_16bit()
self.tracking_colortable[0] = QColor(0,0,0,0).rgba() # make 0 transparent
self.tracking_colortable[1] = QColor(128,128,128,255).rgba() # misdetections have id 1 and will be indicated by grey
self.merger_colortable = colortables.create_default_16bit()
for i in range(7):
self.merger_colortable[i] = self.mergerColors[i].rgba()
if "MergerOutput" in self.topLevelOperatorView.outputs:
parameters = self.mainOperator.Parameters.value
if 'withMergerResolution' in parameters.keys() and not parameters['withMergerResolution']:
merger_ct = self.merger_colortable
else:
merger_ct = self.tracking_colortable
# Using same color table for tracking with and without mergers (Is there any reason for using different color tables?)
merger_ct = self.tracking_colortable
if self.topLevelOperatorView.MergerCachedOutput.ready():
self.mergersrc = LazyflowSource( self.topLevelOperatorView.MergerCachedOutput )
else:
self.mergersrc = LazyflowSource( self.topLevelOperatorView.zeroProvider.Output )
mergerLayer = ColortableLayer( self.mergersrc, merger_ct )
mergerLayer.name = "Merger"
if 'withMergerResolution' in parameters.keys() and not parameters['withMergerResolution']:
mergerLayer.visible = True
else:
mergerLayer.visible = False
layers.append(mergerLayer)
if self.topLevelOperatorView.CachedOutput.ready():
self.trackingsrc = LazyflowSource( self.topLevelOperatorView.CachedOutput )
trackingLayer = ColortableLayer( self.trackingsrc, self.tracking_colortable )
trackingLayer.name = "Tracking"
trackingLayer.visible = True
trackingLayer.opacity = 1.0
layers.append(trackingLayer)
elif self.topLevelOperatorView.zeroProvider.Output.ready():
# provide zeros while waiting for the tracking result
self.trackingsrc = LazyflowSource( self.topLevelOperatorView.zeroProvider.Output )
trackingLayer = ColortableLayer( self.trackingsrc, self.tracking_colortable )
trackingLayer.name = "Tracking"
trackingLayer.visible = True
trackingLayer.opacity = 1.0
layers.append(trackingLayer)
if "RelabeledImage" in self.topLevelOperatorView.outputs:
if self.topLevelOperatorView.RelabeledCachedOutput.ready():
self.objectssrc = LazyflowSource( self.topLevelOperatorView.RelabeledCachedOutput )
else:
self.objectssrc = LazyflowSource( self.topLevelOperatorView.zeroProvider.Output )
else:
if self.topLevelOperatorView.LabelImage.ready():
self.objectssrc = LazyflowSource( self.topLevelOperatorView.LabelImage )
ct = colortables.create_random_16bit()
ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
objLayer = ColortableLayer( self.objectssrc, ct )
objLayer.name = "Objects"
objLayer.opacity = 1.0
objLayer.visible = False
layers.append(objLayer)
if self.mainOperator.RawImage.ready():
rawLayer = self.createStandardLayerFromSlot(self.mainOperator.RawImage)
rawLayer.name = "Raw"
layers.insert( len(layers), rawLayer )
if self.topLevelOperatorView.LabelImage.meta.shape:
maxt = self.topLevelOperatorView.LabelImage.meta.shape[0] - 1
maxx = self.topLevelOperatorView.LabelImage.meta.shape[1] - 1
maxy = self.topLevelOperatorView.LabelImage.meta.shape[2] - 1
maxz = self.topLevelOperatorView.LabelImage.meta.shape[3] - 1
if not self.mainOperator.Parameters.ready():
raise Exception("Parameter slot is not ready")
parameters = self.mainOperator.Parameters.value
self._setRanges()
if 'size_range' in parameters:
self._drawer.to_size.setValue(parameters['size_range'][1]-1)
self._drawer.from_size.setValue(parameters['size_range'][0])
else:
self._drawer.from_size.setValue(0)
self._drawer.to_size.setValue(10000)
if 'x_range' in parameters:
self._drawer.to_x.setValue(parameters['x_range'][1]-1)
self._drawer.from_x.setValue(parameters['x_range'][0])
else:
#.........这里部分代码省略.........
示例12: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers( self ):
layers = []
if "MergerOutput" in self.topLevelOperatorView.outputs:
ct = colortables.create_default_8bit()
for i in range(7):
ct[i] = self.mergerColors[i].rgba()
if self.topLevelOperatorView.MergerCachedOutput.ready():
self.mergersrc = LazyflowSource( self.topLevelOperatorView.MergerCachedOutput )
else:
self.mergersrc = LazyflowSource( self.topLevelOperatorView.ZeroOutput )
mergerLayer = ColortableLayer( self.mergersrc, ct )
mergerLayer.name = "Merger"
mergerLayer.visible = True
layers.append(mergerLayer)
ct = colortables.create_random_16bit()
ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
ct[1] = QColor(128,128,128,255).rgba() # misdetections have id 1 and will be indicated by grey
if self.topLevelOperatorView.CachedOutput.ready():
self.trackingsrc = LazyflowSource( self.topLevelOperatorView.CachedOutput )
trackingLayer = ColortableLayer( self.trackingsrc, ct )
trackingLayer.name = "Tracking"
trackingLayer.visible = True
trackingLayer.opacity = 1.0
layers.append(trackingLayer)
elif self.topLevelOperatorView.zeroProvider.Output.ready():
# provide zeros while waiting for the tracking result
self.trackingsrc = LazyflowSource( self.topLevelOperatorView.zeroProvider.Output )
trackingLayer = ColortableLayer( self.trackingsrc, ct )
trackingLayer.name = "Tracking"
trackingLayer.visible = True
trackingLayer.opacity = 1.0
layers.append(trackingLayer)
if self.topLevelOperatorView.LabelImage.ready():
self.objectssrc = LazyflowSource( self.topLevelOperatorView.LabelImage )
ct = colortables.create_random_16bit()
ct[0] = QColor(0,0,0,0).rgba() # make 0 transparent
objLayer = ColortableLayer( self.objectssrc, ct )
objLayer.name = "Objects"
objLayer.opacity = 1.0
objLayer.visible = True
layers.append(objLayer)
if self.mainOperator.RawImage.ready():
rawLayer = self.createStandardLayerFromSlot(self.mainOperator.RawImage)
rawLayer.name = "Raw"
layers.insert( len(layers), rawLayer )
if self.topLevelOperatorView.LabelImage.meta.shape:
self.editor.dataShape = self.topLevelOperatorView.LabelImage.meta.shape
maxt = self.topLevelOperatorView.LabelImage.meta.shape[0] - 1
maxx = self.topLevelOperatorView.LabelImage.meta.shape[1] - 1
maxy = self.topLevelOperatorView.LabelImage.meta.shape[2] - 1
maxz = self.topLevelOperatorView.LabelImage.meta.shape[3] - 1
if not self.mainOperator.Parameters.ready():
raise Exception("Parameter slot is not ready")
parameters = self.mainOperator.Parameters.value
self._setRanges()
if 'size_range' in parameters:
self._drawer.to_size.setValue(parameters['size_range'][1]-1)
self._drawer.from_size.setValue(parameters['size_range'][0])
else:
self._drawer.from_size.setValue(0)
self._drawer.to_size.setValue(10000)
if 'x_range' in parameters:
self._drawer.to_x.setValue(parameters['x_range'][1]-1)
self._drawer.from_x.setValue(parameters['x_range'][0])
else:
self._drawer.from_x.setValue(0)
self._drawer.to_x.setValue(maxx)
if 'y_range' in parameters:
self._drawer.to_y.setValue(parameters['y_range'][1]-1)
self._drawer.from_y.setValue(parameters['y_range'][0])
else:
self._drawer.from_y.setValue(0)
self._drawer.to_y.setValue(maxy)
if 'z_range' in parameters:
self._drawer.to_z.setValue(parameters['z_range'][1]-1)
self._drawer.from_z.setValue(parameters['z_range'][0])
else:
self._drawer.from_z.setValue(0)
self._drawer.to_z.setValue(maxz)
if 'time_range' in parameters:
self._drawer.to_time.setValue(parameters['time_range'][1])
self._drawer.from_time.setValue(parameters['time_range'][0])
else:
#.........这里部分代码省略.........
示例13: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
layers = []
op = self.topLevelOperatorView
binct = [QColor(Qt.black), QColor(Qt.white)]
binct[0] = 0
ct = self._createDefault16ColorColorTable()
ct[0]=0
# Show the cached output, since it goes through a blocked cache
if op.CachedOutput.ready():
outputSrc = LazyflowSource(op.CachedOutput)
outputLayer = ColortableLayer(outputSrc, binct)
outputLayer.name = "Final output"
outputLayer.visible = False
outputLayer.opacity = 1.0
outputLayer.setToolTip("Results of thresholding and size filter")
layers.append(outputLayer)
if self._showDebug:
#FIXME: We have to do that, because lazyflow doesn't have a way to make an operator partially ready
curIndex = self._drawer.tabWidget.currentIndex()
if curIndex==1:
if op.BigRegions.ready():
lowThresholdSrc = LazyflowSource(op.BigRegions)
lowThresholdLayer = ColortableLayer(lowThresholdSrc, binct)
lowThresholdLayer.name = "After low threshold"
lowThresholdLayer.visible = False
lowThresholdLayer.opacity = 1.0
lowThresholdLayer.setToolTip("Results of thresholding with the low pixel value threshold")
layers.append(lowThresholdLayer)
if op.FilteredSmallLabels.ready():
filteredSmallLabelsLayer = self.createStandardLayerFromSlot( op.FilteredSmallLabels )
filteredSmallLabelsLayer.name = "After high threshold and size filter"
filteredSmallLabelsLayer.visible = False
filteredSmallLabelsLayer.opacity = 1.0
filteredSmallLabelsLayer.setToolTip("Results of thresholding with the high pixel value threshold,\
followed by the size filter")
layers.append(filteredSmallLabelsLayer)
if op.SmallRegions.ready():
highThresholdSrc = LazyflowSource(op.SmallRegions)
highThresholdLayer = ColortableLayer(highThresholdSrc, binct)
highThresholdLayer.name = "After high threshold"
highThresholdLayer.visible = False
highThresholdLayer.opacity = 1.0
highThresholdLayer.setToolTip("Results of thresholding with the high pixel value threshold")
layers.append(highThresholdLayer)
elif curIndex==0:
if op.BeforeSizeFilter.ready():
thSrc = LazyflowSource(op.BeforeSizeFilter)
thLayer = ColortableLayer(thSrc, ct)
thLayer.name = "Before size filter"
thLayer.visible = False
thLayer.opacity = 1.0
thLayer.setToolTip("Results of thresholding before the size filter is applied")
layers.append(thLayer)
# Selected input channel, smoothed.
if op.Smoothed.ready():
smoothedLayer = self.createStandardLayerFromSlot( op.Smoothed )
smoothedLayer.name = "Smoothed input"
smoothedLayer.visible = True
smoothedLayer.opacity = 1.0
smoothedLayer.setToolTip("Selected channel data, smoothed with a Gaussian with user-defined sigma")
layers.append(smoothedLayer)
# Show the selected channel
if op.InputChannel.ready():
drange = op.InputChannel.meta.drange
if drange is None:
drange = (0.0, 1.0)
channelSrc = LazyflowSource(op.InputChannel)
#channelLayer = AlphaModulatedLayer( channelSrc,
# tintColor=QColor(self._channelColors[op.Channel.value]),
# range=drange,
# normalize=drange )
#it used to be set to the label color, but people found it confusing
channelLayer = AlphaModulatedLayer( channelSrc, tintColor = QColor(Qt.white), range = drange, normalize=drange)
channelLayer.name = "Selected input channel"
channelLayer.opacity = 1.0
channelLayer.setToolTip("The selected channel of the prediction images")
#channelLayer.visible = channelIndex == op.Channel.value # By default, only the selected input channel is visible.
layers.append(channelLayer)
# Show the raw input data
rawSlot = self.topLevelOperatorView.RawInput
if rawSlot.ready():
rawLayer = self.createStandardLayerFromSlot( rawSlot )
rawLayer.name = "Raw data"
rawLayer.visible = True
rawLayer.opacity = 1.0
layers.append(rawLayer)
return layers
示例14: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
layers = []
op = self.topLevelOperatorView
binct = [QColor(Qt.black), QColor(Qt.white)]
binct[0] = 0
ct = create_default_16bit()
ct[0] = 0
# Show the cached output, since it goes through a blocked cache
if op.CachedOutput.ready():
outputSrc = LazyflowSource(op.CachedOutput)
outputLayer = ColortableLayer(outputSrc, ct)
outputLayer.name = "Final output"
outputLayer.visible = False
outputLayer.opacity = 1.0
outputLayer.setToolTip("Results of thresholding and size filter")
layers.append(outputLayer)
if op.InputChannelColors.ready():
input_channel_colors = [QColor(r_g_b1[0],r_g_b1[1],r_g_b1[2]) for r_g_b1 in op.InputChannelColors.value]
else:
input_channel_colors = list(map(QColor, self._defaultInputChannelColors))
for channel, channelProvider in enumerate(self._channelProviders):
slot_drange = channelProvider.Output.meta.drange
if slot_drange is not None:
drange = slot_drange
else:
drange = (0.0, 1.0)
channelSrc = LazyflowSource(channelProvider.Output)
inputChannelLayer = AlphaModulatedLayer(
channelSrc, tintColor=input_channel_colors[channel],
range=drange, normalize=drange)
inputChannelLayer.opacity = 0.5
inputChannelLayer.visible = True
inputChannelLayer.name = "Input Channel " + str(channel)
inputChannelLayer.setToolTip("Select input channel " + str(channel) + \
" if this prediction image contains the objects of interest.")
layers.append(inputChannelLayer)
if self._showDebug:
#FIXME: We have to do that, because lazyflow doesn't have a way to make an operator partially ready
curIndex = op.CurOperator.value
if curIndex==1:
if op.BigRegions.ready():
lowThresholdSrc = LazyflowSource(op.BigRegions)
lowThresholdLayer = ColortableLayer(lowThresholdSrc, binct)
lowThresholdLayer.name = "After low threshold"
lowThresholdLayer.visible = False
lowThresholdLayer.opacity = 1.0
lowThresholdLayer.setToolTip("Results of thresholding with the low pixel value threshold")
layers.append(lowThresholdLayer)
if op.FilteredSmallLabels.ready():
filteredSmallLabelsSrc = LazyflowSource(op.FilteredSmallLabels)
#filteredSmallLabelsLayer = self.createStandardLayerFromSlot( op.FilteredSmallLabels )
filteredSmallLabelsLayer = ColortableLayer(filteredSmallLabelsSrc, binct)
filteredSmallLabelsLayer.name = "After high threshold and size filter"
filteredSmallLabelsLayer.visible = False
filteredSmallLabelsLayer.opacity = 1.0
filteredSmallLabelsLayer.setToolTip("Results of thresholding with the high pixel value threshold,\
followed by the size filter")
layers.append(filteredSmallLabelsLayer)
if op.SmallRegions.ready():
highThresholdSrc = LazyflowSource(op.SmallRegions)
highThresholdLayer = ColortableLayer(highThresholdSrc, binct)
highThresholdLayer.name = "After high threshold"
highThresholdLayer.visible = False
highThresholdLayer.opacity = 1.0
highThresholdLayer.setToolTip("Results of thresholding with the high pixel value threshold")
layers.append(highThresholdLayer)
elif curIndex==0:
if op.BeforeSizeFilter.ready():
thSrc = LazyflowSource(op.BeforeSizeFilter)
thLayer = ColortableLayer(thSrc, ct)
thLayer.name = "Before size filter"
thLayer.visible = False
thLayer.opacity = 1.0
thLayer.setToolTip("Results of thresholding before the size filter is applied")
layers.append(thLayer)
# Selected input channel, smoothed.
if op.Smoothed.ready():
smoothedLayer = self.createStandardLayerFromSlot( op.Smoothed )
smoothedLayer.name = "Smoothed input"
smoothedLayer.visible = True
smoothedLayer.opacity = 1.0
smoothedLayer.setToolTip("Selected channel data, smoothed with a Gaussian with user-defined sigma")
layers.append(smoothedLayer)
# Show the raw input data
rawSlot = self.topLevelOperatorView.RawInput
if rawSlot.ready():
rawLayer = self.createStandardLayerFromSlot( rawSlot )
rawLayer.name = "Raw data"
rawLayer.visible = True
rawLayer.opacity = 1.0
layers.append(rawLayer)
#.........这里部分代码省略.........
示例15: setupLayers
# 需要导入模块: from volumina.api import ColortableLayer [as 别名]
# 或者: from volumina.api.ColortableLayer import opacity [as 别名]
def setupLayers(self):
# Base class provides the label layer.
layers = super(ObjectClassificationGui, self).setupLayers()
labelOutput = self._labelingSlots.labelOutput
binarySlot = self.op.BinaryImages
segmentedSlot = self.op.SegmentationImages
rawSlot = self.op.RawImages
if segmentedSlot.ready():
ct = colortables.create_default_16bit()
self.objectssrc = LazyflowSource(segmentedSlot)
ct[0] = QColor(0, 0, 0, 0).rgba() # make 0 transparent
layer = ColortableLayer(self.objectssrc, ct)
layer.name = "Objects"
layer.opacity = 0.5
layer.visible = True
layers.append(layer)
if binarySlot.ready():
ct_binary = [QColor(0, 0, 0, 0).rgba(), QColor(255, 255, 255, 255).rgba()]
self.binaryimagesrc = LazyflowSource(binarySlot)
layer = ColortableLayer(self.binaryimagesrc, ct_binary)
layer.name = "Binary Image"
layer.visible = False
layers.append(layer)
# This is just for colors
labels = self.labelListData
for channel, probSlot in enumerate(self.op.PredictionProbabilityChannels):
if probSlot.ready() and channel < len(labels):
ref_label = labels[channel]
probsrc = LazyflowSource(probSlot)
probLayer = AlphaModulatedLayer(
probsrc, tintColor=ref_label.pmapColor(), range=(0.0, 1.0), normalize=(0.0, 1.0)
)
probLayer.opacity = 0.25
probLayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
def setLayerColor(c, predictLayer=probLayer):
predictLayer.tintColor = c
def setLayerName(n, predictLayer=probLayer):
newName = "Prediction for %s" % n
predictLayer.name = newName
setLayerName(ref_label.name)
ref_label.pmapColorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setLayerName)
layers.insert(0, probLayer)
predictionSlot = self.op.PredictionImages
if predictionSlot.ready():
self.predictsrc = LazyflowSource(predictionSlot)
self.predictlayer = ColortableLayer(self.predictsrc, colorTable=self._colorTable16)
self.predictlayer.name = "Prediction"
self.predictlayer.ref_object = None
self.predictlayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
# put first, so that it is visible after hitting "live
# predict".
layers.insert(0, self.predictlayer)
badObjectsSlot = self.op.BadObjectImages
if badObjectsSlot.ready():
ct_black = [0, QColor(Qt.black).rgba()]
self.badSrc = LazyflowSource(badObjectsSlot)
self.badLayer = ColortableLayer(self.badSrc, colorTable=ct_black)
self.badLayer.name = "Ambiguous objects"
self.badLayer.visible = False
layers.append(self.badLayer)
if rawSlot.ready():
self.rawimagesrc = LazyflowSource(rawSlot)
layer = self.createStandardLayerFromSlot(rawSlot)
layer.name = "Raw data"
layers.append(layer)
# since we start with existing labels, it makes sense to start
# with the first one selected. This would make more sense in
# __init__(), but it does not take effect there.
# self.selectLabel(0)
return layers