Skip to content

Commit 0095647

Browse files
committed
SQUASHME: fix PR
1 parent 281cdc9 commit 0095647

4 files changed

Lines changed: 16 additions & 23 deletions

File tree

examples/viewer_lib/ui/segmentation/islands_effect_ui.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import enum
21
from dataclasses import dataclass
2+
from enum import Enum, auto
33

44
from trame_server.utils.typed_state import TypedState
55
from trame_vuetify.widgets.vuetify3 import VBtn, VContainer, VNumberInput, VSelect
66
from undo_stack import Signal
77

88

9-
class IslandsSegmentationMode(enum.Enum):
10-
KEEP_LARGEST_ISLAND = enum.auto()
11-
REMOVE_SMALL_ISLANDS = enum.auto()
12-
SPLIT_TO_SEGMENTS = enum.auto()
9+
class IslandsSegmentationMode(Enum):
10+
KEEP_LARGEST_ISLAND = auto()
11+
REMOVE_SMALL_ISLANDS = auto()
12+
SPLIT_TO_SEGMENTS = auto()
1313

1414

1515
@dataclass

examples/viewer_lib/ui/segmentation/segment_editor_ui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def __init__(self, **kwargs):
107107
self._create_effect_button("Erase", "mdi-eraser", SegmentationEffectErase)
108108
self._create_effect_button("Scissors", "mdi-content-cut", SegmentationEffectScissors)
109109
self._create_effect_button("Threshold", "mdi-auto-fix", SegmentationEffectThreshold)
110-
self._create_effect_button("Islands", "mdi-chart-scatter-plot", SegmentationEffectIslands)
110+
self._create_effect_button("Islands", "mdi-scatter-plot", SegmentationEffectIslands)
111111
VDivider()
112112

113113
with VRow():

tests/test_segmentation_islands_effect.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import pytest
55
from undo_stack import UndoStack
66

7-
from trame_slicer.core import IOManager
87
from trame_slicer.segmentation import SegmentationEffectIslands
98

109

@@ -15,23 +14,13 @@ def undo_stack(a_segmentation_editor):
1514
return undo_stack
1615

1716

18-
@pytest.fixture
19-
def an_io_manager(a_slicer_app):
20-
return IOManager(
21-
a_slicer_app.scene,
22-
a_slicer_app.app_logic,
23-
a_slicer_app.segmentation_editor,
24-
)
25-
26-
2717
@pytest.fixture
2818
def a_segmentation_spheres_file_path(a_data_folder) -> Path:
2919
return a_data_folder.joinpath("segmentation_spheres.nii.gz")
3020

3121

3222
def test_paint_effect_adds_segmentation_to_selected_segment(
3323
a_slicer_app,
34-
an_io_manager,
3524
a_segmentation_editor,
3625
a_volume_node,
3726
a_slice_view,
@@ -42,7 +31,7 @@ def test_paint_effect_adds_segmentation_to_selected_segment(
4231
a_slicer_app.display_manager.show_volume(a_volume_node, vr_preset="MR-Default")
4332

4433
undo_stack.clear()
45-
segmentation_node = an_io_manager.load_segmentation(a_segmentation_spheres_file_path)
34+
segmentation_node = a_slicer_app.io_manager.load_segmentation(a_segmentation_spheres_file_path)
4635
a_segmentation_editor.set_active_segmentation(segmentation_node, a_volume_node)
4736
segment_id = a_segmentation_editor.get_nth_segment_id(0)
4837

trame_slicer/segmentation/segmentation_effect_islands.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,21 @@
77
from vtkmodules.vtkCommonCore import vtkIntArray
88
from vtkmodules.vtkCommonMath import vtkMatrix4x4
99
from vtkmodules.vtkImagingCore import vtkImageCast, vtkImageThreshold
10-
from vtkmodules.vtkITK import vtkITKIslandMath
1110

12-
from trame_slicer.segmentation import ModificationMode
11+
try:
12+
from vtkmodules.vtkITK import vtkITKIslandMath
13+
except ImportError:
14+
from vtkITK import vtkITKIslandMath
1315

16+
from . import ModificationMode
1417
from .segmentation_effect import SegmentationEffect
1518

1619

1720
class SegmentationEffectIslands(SegmentationEffect):
21+
def __init__(self) -> None:
22+
super().__init__()
23+
self.set_mode(ModificationMode.Set)
24+
1825
def _create_pipeline(self, _view_node: vtkMRMLAbstractViewNode, _parameter: vtkMRMLNode) -> None:
1926
# Islands effect does not require a pipeline
2027
return None
@@ -26,8 +33,6 @@ def apply(
2633
return
2734

2835
island_image = self.get_island_labelmap(segment_id, minimum_size)
29-
modification_mode = self.modifier.modification_mode
30-
self.modifier.modification_mode = ModificationMode.Set
3136

3237
label_values = vtkIntArray()
3338
vtkSlicerSegmentationsModuleLogic.GetAllLabelValues(label_values, island_image)
@@ -71,7 +76,6 @@ def apply(
7176
self.modifier.segmentation.segmentation_node,
7277
self.modifier.segmentation.get_segment(segment_id).GetName(),
7378
)
74-
self.modifier.modification_mode = modification_mode
7579
self.modifier.segmentation.segmentation_modified.emit()
7680

7781
def get_island_labelmap(self, segment_id: str, minimum_size: int = 0) -> vtkOrientedImageData:

0 commit comments

Comments
 (0)