本文整理汇总了Python中volumina.api.AlphaModulatedLayer.shortcutRegistration方法的典型用法代码示例。如果您正苦于以下问题:Python AlphaModulatedLayer.shortcutRegistration方法的具体用法?Python AlphaModulatedLayer.shortcutRegistration怎么用?Python AlphaModulatedLayer.shortcutRegistration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类volumina.api.AlphaModulatedLayer
的用法示例。
在下文中一共展示了AlphaModulatedLayer.shortcutRegistration方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setupLayers
# 需要导入模块: from volumina.api import AlphaModulatedLayer [as 别名]
# 或者: from volumina.api.AlphaModulatedLayer import shortcutRegistration [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)
#.........这里部分代码省略.........
示例2: setupLayers
# 需要导入模块: from volumina.api import AlphaModulatedLayer [as 别名]
# 或者: from volumina.api.AlphaModulatedLayer import shortcutRegistration [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()
# 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 = (
"Prediction Layers",
"Show/Hide Uncertainty",
QShortcut( QKeySequence("u"), self.viewerControlWidget(), uncertaintyLayer.toggleVisible ),
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):
segLayer.tintColor = c
self._update_rendering()
def setSegLayerName(n, segLayer=segLayer):
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)
ref_label.pmapColorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setSegLayerName)
#check if layer is 3d before adding the "Toggle 3D" option
#this check is done this way to match the VolumeRenderer, in
#case different 3d-axistags should be rendered like t-x-y
#_axiskeys = segmentationSlot.meta.getAxisKeys()
if len(segmentationSlot.meta.shape) == 4:
#the Renderer will cut out the last shape-dimension, so
#we're checking for 4 dimensions
self._setup_contexts(segLayer)
layers.append(segLayer)
# Add each of the predictions
for channel, predictionSlot in enumerate(self.topLevelOperatorView.PredictionProbabilityChannels):
if predictionSlot.ready() and channel < len(labels):
ref_label = labels[channel]
predictsrc = LazyflowSource(predictionSlot)
predictLayer = AlphaModulatedLayer( predictsrc,
tintColor=ref_label.pmapColor(),
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
predictLayer.opacity = 0.25
predictLayer.visible = self.labelingDrawerUi.liveUpdateButton.isChecked()
predictLayer.visibleChanged.connect(self.updateShowPredictionCheckbox)
def setLayerColor(c, predictLayer=predictLayer):
predictLayer.tintColor = c
def setPredLayerName(n, predictLayer=predictLayer):
newName = "Prediction for %s" % n
predictLayer.name = newName
setPredLayerName(ref_label.name)
ref_label.pmapColorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setPredLayerName)
layers.append(predictLayer)
# Add the raw data last (on the bottom)
inputDataSlot = self.topLevelOperatorView.InputImages
if inputDataSlot.ready():
inputLayer = self.createStandardLayerFromSlot( inputDataSlot )
inputLayer.name = "Input Data"
#.........这里部分代码省略.........
示例3: setupLayers
# 需要导入模块: from volumina.api import AlphaModulatedLayer [as 别名]
# 或者: from volumina.api.AlphaModulatedLayer import shortcutRegistration [as 别名]
#.........这里部分代码省略.........
# 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)
uncertaintySlot = self.op.UncertaintyEstimateImage
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
ActionInfo = ShortcutManager.ActionInfo
uncertaintyLayer.shortcutRegistration = ( "u", ActionInfo( "Uncertainty Layers",
"Uncertainty",
"Show/Hide Uncertainty",
uncertaintyLayer.toggleVisible,
self.viewerControlWidget(),
uncertaintyLayer ) )
layers.append(uncertaintyLayer)
if binarySlot.ready():
ct_binary = [0,
QColor(255, 255, 255, 255).rgba()]
# white foreground on transparent background, even for labeled images
binct = [QColor(255, 255, 255, 255).rgba()]*65536
binct[0] = 0
binaryimagesrc = LazyflowSource(binarySlot)
binLayer = ColortableLayer(binaryimagesrc, binct)
binLayer.name = "Binary image"
binLayer.visible = True
binLayer.opacity = 1.0
binLayer.setToolTip("Segmentation results as a binary mask")
layers.append(binLayer)
if rawSlot.ready():
rawLayer = self.createStandardLayerFromSlot(rawSlot)
rawLayer.name = "Raw data"
def toggleTopToBottom():
index = self.layerstack.layerIndex( rawLayer )
self.layerstack.selectRow( index )
if index == 0:
self.layerstack.moveSelectedToBottom()
else:
self.layerstack.moveSelectedToTop()
ActionInfo = ShortcutManager.ActionInfo
rawLayer.shortcutRegistration = ( "i", ActionInfo( "Prediction Layers",
"Bring Input To Top/Bottom",
"Bring Input To Top/Bottom",
toggleTopToBottom,
self.viewerControlWidget(),
rawLayer ) )
layers.append(rawLayer)
# 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
示例4: setupLayers
# 需要导入模块: from volumina.api import AlphaModulatedLayer [as 别名]
# 或者: from volumina.api.AlphaModulatedLayer import shortcutRegistration [as 别名]
def setupLayers(self, currentImageIndex):
"""
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(currentImageIndex)
labels = self.labelListData
# Add the uncertainty estimate layer
uncertaintySlot = self.pipeline.UncertaintyEstimate[currentImageIndex]
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 = (
"Prediction Layers",
"Show/Hide Uncertainty",
QShortcut( QKeySequence("u"), self.viewerControlWidget(), uncertaintyLayer.toggleVisible ),
uncertaintyLayer )
layers.append(uncertaintyLayer)
# Add each of the predictions
for channel, predictionSlot in enumerate(self.pipeline.PredictionProbabilityChannels[currentImageIndex]):
if predictionSlot.ready() and channel < len(labels):
ref_label = labels[channel]
predictsrc = LazyflowSource(predictionSlot)
predictLayer = AlphaModulatedLayer( predictsrc,
tintColor=ref_label.color,
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
predictLayer.opacity = 0.25
predictLayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
predictLayer.visibleChanged.connect(self.updateShowPredictionCheckbox)
def setLayerColor(c):
predictLayer.tintColor = c
def setLayerName(n):
newName = "Prediction for %s" % ref_label.name
predictLayer.name = newName
setLayerName(ref_label.name)
ref_label.colorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setLayerName)
layers.append(predictLayer)
# Add each of the segementations
for channel, segmentationSlot in enumerate(self.pipeline.SegmentationChannels[currentImageIndex]):
if segmentationSlot.ready() and channel < len(labels):
ref_label = labels[channel]
segsrc = LazyflowSource(segmentationSlot)
segLayer = AlphaModulatedLayer( segsrc,
tintColor=ref_label.color,
range=(0.0, 1.0),
normalize=(0.0, 1.0) )
segLayer.opacity = 1
segLayer.visible = self.labelingDrawerUi.checkInteractive.isChecked()
segLayer.visibleChanged.connect(self.updateShowSegmentationCheckbox)
def setLayerColor(c):
segLayer.tintColor = c
def setLayerName(n):
newName = "Segmentation (%s)" % ref_label.name
segLayer.name = newName
setLayerName(ref_label.name)
ref_label.colorChanged.connect(setLayerColor)
ref_label.nameChanged.connect(setLayerName)
layers.append(segLayer)
# Add the raw data last (on the bottom)
inputDataSlot = self.pipeline.InputImages[currentImageIndex]
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)
return layers