Пример #1
0
    def setupLayers(self):
        layers = []
        op = self.topLevelOperatorView
        ActionInfo = ShortcutManager.ActionInfo

        # Superpixels -- Edge Labels
        if op.Superpixels.ready() and op.EdgeLabelsDict.ready():
            edge_labels = op.EdgeLabelsDict.value
            layer = LabelableSegmentationEdgesLayer(
                LazyflowSource(op.Superpixels), self.edge_label_pen_table,
                edge_labels)
            layer.name = "Edge Labels"
            layer.visible = True
            layer.opacity = 1.0

            self.update_labeled_edges()  # Initialize
            layer.labelsChanged.connect(self._handle_edge_label_clicked)
            layer.contexts.append(self.create_prefetch_menu("Edge Labels"))

            layer.shortcutRegistration = ("0",
                                          ActionInfo(
                                              "Edge Training Layers",
                                              "LabelVisibility",
                                              "Show/Hide Edge Labels",
                                              layer.toggleVisible,
                                              self.viewerControlWidget(),
                                              layer))

            layers.append(layer)
            del layer

        # Superpixels -- Edge Probabilities
        if op.Superpixels.ready() and op.EdgeProbabilitiesDict.ready():
            layer = SegmentationEdgesLayer(LazyflowSource(op.Superpixels))
            layer.name = "Edge Probabilities"  # Name is hard-coded in multiple places: grep before changing.
            layer.visible = False
            layer.opacity = 1.0
            self.update_probability_edges()  # Initialize

            layer.contexts.append(
                self.create_prefetch_menu("Edge Probabilities"))

            layer.shortcutRegistration = ("p",
                                          ActionInfo(
                                              "Edge Training Layers",
                                              "EdgePredictionsVisibility",
                                              "Show/Hide Edge Predictions",
                                              layer.toggleVisible,
                                              self.viewerControlWidget(),
                                              layer))

            layers.append(layer)
            del layer

        # Superpixels -- Edges
        if op.Superpixels.ready():
            default_pen = QPen(SegmentationEdgesLayer.DEFAULT_PEN)
            default_pen.setColor(Qt.yellow)
            layer = SegmentationEdgesLayer(LazyflowSource(op.Superpixels),
                                           default_pen)
            layer.name = "Superpixel Edges"
            layer.visible = True
            layer.opacity = 1.0
            layers.append(layer)
            del layer

        # Naive Segmentation
        if op.NaiveSegmentation.ready():
            layer = self.createStandardLayerFromSlot(op.NaiveSegmentation)
            layer.name = "Naive Segmentation"
            layer.visible = False
            layer.opacity = 0.5

            layer.shortcutRegistration = (
                "n",
                ActionInfo(
                    "Edge Training Layers", "NaiveSegmentationVisibility",
                    "Show/Hide Naive Segmentation (shows output if classifier output is respected verbatim)",
                    layer.toggleVisible, self.viewerControlWidget(), layer))

            layers.append(layer)
            del layer

        # Groundtruth
        if op.GroundtruthSegmentation.ready():
            layer = self.createStandardLayerFromSlot(
                op.GroundtruthSegmentation)
            layer.name = "Groundtruth"
            layer.visible = False
            layer.opacity = 0.5

            layer.shortcutRegistration = ("g",
                                          ActionInfo(
                                              "Edge Training Layers",
                                              "GroundtruthVisibility",
                                              "Show/Hide Groundtruth",
                                              layer.toggleVisible,
                                              self.viewerControlWidget(),
                                              layer))

            layers.append(layer)
            del layer

        # Voxel data
        if op.VoxelData.ready():
            layer = self._create_grayscale_layer_from_slot(
                op.VoxelData,
                op.VoxelData.meta.getTaggedShape()['c'])
            layer.name = "Voxel Data"
            layer.visible = False
            layer.opacity = 1.0
            layers.append(layer)
            del layer

        # Raw Data (grayscale)
        if op.RawData.ready():
            layer = self.createStandardLayerFromSlot(op.RawData)
            layer.name = "Raw Data"
            layer.visible = True
            layer.opacity = 1.0
            layers.append(layer)
            layer.shortcutRegistration = ("i",
                                          ActionInfo(
                                              "Edge Training Layers",
                                              "Hide all but Raw",
                                              "Hide all but Raw",
                                              partial(self.toggle_show_raw,
                                                      "Raw Data"),
                                              self.viewerControlWidget(),
                                              layer))
            del layer

        return layers
Пример #2
0
    def setupLayers(self):
        layers = []
        op = self.topLevelOperatorView
        ActionInfo = ShortcutManager.ActionInfo

        # Superpixels -- Edge Labels 
        if op.Superpixels.ready() and op.EdgeLabelsDict.ready():
            edge_labels = op.EdgeLabelsDict.value
            layer = LabelableSegmentationEdgesLayer( LazyflowSource(op.Superpixels), self.edge_label_pen_table, edge_labels )
            layer.name = "Edge Labels"
            layer.visible = True
            layer.opacity = 1.0

            self.update_labeled_edges() # Initialize
            layer.labelsChanged.connect( self._handle_edge_label_clicked )
            layer.contexts.append( self.create_prefetch_menu("Edge Labels") )

            layer.shortcutRegistration = ( "0",
                                           ActionInfo(
                                               "Edge Training Layers",
                                                "LabelVisibility",
                                                "Show/Hide Edge Labels",
                                                layer.toggleVisible,
                                                self.viewerControlWidget(),
                                                layer ) )
            
            layers.append(layer)
            del layer

        # Superpixels -- Edge Probabilities
        if op.Superpixels.ready() and op.EdgeProbabilitiesDict.ready():
            layer = SegmentationEdgesLayer( LazyflowSource(op.Superpixels) )
            layer.name = "Edge Probabilities" # Name is hard-coded in multiple places: grep before changing.
            layer.visible = False
            layer.opacity = 1.0
            self.update_probability_edges() # Initialize

            layer.contexts.append( self.create_prefetch_menu("Edge Probabilities") )

            
            layer.shortcutRegistration = ( "p",
                                           ActionInfo(
                                               "Edge Training Layers",
                                                "EdgePredictionsVisibility",
                                                "Show/Hide Edge Predictions",
                                                layer.toggleVisible,
                                                self.viewerControlWidget(),
                                                layer ) )
            
            layers.append(layer)
            del layer
                
        # Superpixels -- Edges
        if op.Superpixels.ready():
            default_pen = QPen(SegmentationEdgesLayer.DEFAULT_PEN)
            default_pen.setColor(Qt.yellow)
            layer = SegmentationEdgesLayer( LazyflowSource(op.Superpixels), default_pen )
            layer.name = "Superpixel Edges"
            layer.visible = True
            layer.opacity = 1.0
            layers.append(layer)
            del layer
 
        # Naive Segmentation
        if op.NaiveSegmentation.ready():
            layer = self.createStandardLayerFromSlot( op.NaiveSegmentation )
            layer.name = "Naive Segmentation"
            layer.visible = False
            layer.opacity = 0.5

            layer.shortcutRegistration = ( "n",
                                           ActionInfo(
                                               "Edge Training Layers",
                                                "NaiveSegmentationVisibility",
                                                "Show/Hide Naive Segmentation (shows output if classifier output is respected verbatim)",
                                                layer.toggleVisible,
                                                self.viewerControlWidget(),
                                                layer ) )
            
            layers.append(layer)
            del layer
         
        # Groundtruth
        if op.GroundtruthSegmentation.ready():
            layer = self.createStandardLayerFromSlot( op.GroundtruthSegmentation )
            layer.name = "Groundtruth"
            layer.visible = False
            layer.opacity = 0.5

            layer.shortcutRegistration = ( "g",
                                           ActionInfo(
                                               "Edge Training Layers",
                                                "GroundtruthVisibility",
                                                "Show/Hide Groundtruth",
                                                layer.toggleVisible,
                                                self.viewerControlWidget(),
                                                layer ) )

            layers.append(layer)
            del layer
 
        # Voxel data
        if op.VoxelData.ready():
            layer = self._create_grayscale_layer_from_slot( op.VoxelData,
                                                            op.VoxelData.meta.getTaggedShape()['c'] )
            layer.name = "Voxel Data"
            layer.visible = False
            layer.opacity = 1.0
            layers.append(layer)
            del layer

        # Raw Data (grayscale)
        if op.RawData.ready():
            layer = self.createStandardLayerFromSlot( op.RawData )
            layer.name = "Raw Data"
            layer.visible = True
            layer.opacity = 1.0
            layers.append(layer)
            layer.shortcutRegistration = ( "i", ActionInfo( "Edge Training Layers",
                                                            "Hide all but Raw",
                                                            "Hide all but Raw",
                                                            partial(self.toggle_show_raw, "Raw Data"),
                                                            self.viewerControlWidget(),
                                                            layer ) )
            del layer

        return layers