Commit bbbe83f1ad6c788460dfd07df08eab2940b47645
1 parent
d17cea01
Exists in
watershed_improvements_bkp
Added the option to use or not the ww&wl
Showing
2 changed files
with
27 additions
and
4 deletions
Show diff stats
invesalius/data/styles.py
@@ -740,11 +740,17 @@ class WatershedConfig(object): | @@ -740,11 +740,17 @@ class WatershedConfig(object): | ||
740 | __metaclass__= utils.Singleton | 740 | __metaclass__= utils.Singleton |
741 | def __init__(self): | 741 | def __init__(self): |
742 | self.operation = BRUSH_FOREGROUND | 742 | self.operation = BRUSH_FOREGROUND |
743 | + self.use_ww_wl = True | ||
744 | + | ||
743 | Publisher.subscribe(self.set_operation, 'Set watershed operation') | 745 | Publisher.subscribe(self.set_operation, 'Set watershed operation') |
746 | + Publisher.subscribe(self.set_use_ww_wl, 'Set use ww wl') | ||
744 | 747 | ||
745 | def set_operation(self, pubsub_evt): | 748 | def set_operation(self, pubsub_evt): |
746 | self.operation = WATERSHED_OPERATIONS[pubsub_evt.data] | 749 | self.operation = WATERSHED_OPERATIONS[pubsub_evt.data] |
747 | 750 | ||
751 | + def set_use_ww_wl(self, pubsub_evt): | ||
752 | + self.use_ww_wl = pubsub_evt.data | ||
753 | + | ||
748 | 754 | ||
749 | class WaterShedInteractorStyle(DefaultInteractorStyle): | 755 | class WaterShedInteractorStyle(DefaultInteractorStyle): |
750 | def __init__(self, viewer): | 756 | def __init__(self, viewer): |
@@ -1004,8 +1010,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | @@ -1004,8 +1010,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | ||
1004 | wl = self.viewer.slice_.window_level | 1010 | wl = self.viewer.slice_.window_level |
1005 | 1011 | ||
1006 | if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers: | 1012 | if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers: |
1007 | - tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size) | ||
1008 | - tmp_mask = watershed(tmp_image, markers) | 1013 | + if self.config.use_ww_wl: |
1014 | + tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size) | ||
1015 | + tmp_mask = watershed(tmp_image, markers) | ||
1016 | + else: | ||
1017 | + tmp_image = ndimage.morphological_gradient(image, self.mg_size) | ||
1018 | + tmp_mask = watershed(tmp_image, markers) | ||
1009 | 1019 | ||
1010 | if self.viewer.overwrite_mask: | 1020 | if self.viewer.overwrite_mask: |
1011 | mask[:] = 0 | 1021 | mask[:] = 0 |
@@ -1111,8 +1121,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | @@ -1111,8 +1121,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): | ||
1111 | ww = self.viewer.slice_.window_width | 1121 | ww = self.viewer.slice_.window_width |
1112 | wl = self.viewer.slice_.window_level | 1122 | wl = self.viewer.slice_.window_level |
1113 | if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers: | 1123 | if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers: |
1114 | - tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size) | ||
1115 | - tmp_mask = watershed(tmp_image, markers) | 1124 | + if self.config.use_ww_wl: |
1125 | + tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size) | ||
1126 | + tmp_mask = watershed(tmp_image, markers) | ||
1127 | + else: | ||
1128 | + tmp_image = ndimage.morphological_gradient(image, self.mg_size) | ||
1129 | + tmp_mask = watershed(tmp_image, markers) | ||
1116 | 1130 | ||
1117 | if self.viewer.overwrite_mask: | 1131 | if self.viewer.overwrite_mask: |
1118 | mask[:] = 0 | 1132 | mask[:] = 0 |
invesalius/gui/task_slice.py
@@ -773,7 +773,10 @@ class WatershedTool(EditionTools): | @@ -773,7 +773,10 @@ class WatershedTool(EditionTools): | ||
773 | 773 | ||
774 | # LINE 5 | 774 | # LINE 5 |
775 | check_box = wx.CheckBox(self, -1, _("Overwrite mask")) | 775 | check_box = wx.CheckBox(self, -1, _("Overwrite mask")) |
776 | + ww_wl_cbox = wx.CheckBox(self, -1, _("Use WW&WL")) | ||
777 | + ww_wl_cbox.SetValue(True) | ||
776 | self.check_box = check_box | 778 | self.check_box = check_box |
779 | + self.ww_wl_cbox = ww_wl_cbox | ||
777 | 780 | ||
778 | # Line 6 | 781 | # Line 6 |
779 | self.btn_exp_watershed = wx.Button(self, -1, _('Expand watershed to 3D')) | 782 | self.btn_exp_watershed = wx.Button(self, -1, _('Expand watershed to 3D')) |
@@ -783,6 +786,7 @@ class WatershedTool(EditionTools): | @@ -783,6 +786,7 @@ class WatershedTool(EditionTools): | ||
783 | sizer.Add(text1, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | 786 | sizer.Add(text1, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
784 | sizer.Add(line2, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | 787 | sizer.Add(line2, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
785 | sizer.Add(check_box, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | 788 | sizer.Add(check_box, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
789 | + sizer.Add(ww_wl_cbox, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | ||
786 | sizer.Add(self.btn_exp_watershed, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | 790 | sizer.Add(self.btn_exp_watershed, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
787 | sizer.Fit(self) | 791 | sizer.Fit(self) |
788 | 792 | ||
@@ -797,6 +801,7 @@ class WatershedTool(EditionTools): | @@ -797,6 +801,7 @@ class WatershedTool(EditionTools): | ||
797 | self.Bind(wx.EVT_MENU, self.OnMenu) | 801 | self.Bind(wx.EVT_MENU, self.OnMenu) |
798 | self.combo_brush_op.Bind(wx.EVT_COMBOBOX, self.OnComboBrushOp) | 802 | self.combo_brush_op.Bind(wx.EVT_COMBOBOX, self.OnComboBrushOp) |
799 | self.check_box.Bind(wx.EVT_CHECKBOX, self.OnCheckOverwriteMask) | 803 | self.check_box.Bind(wx.EVT_CHECKBOX, self.OnCheckOverwriteMask) |
804 | + self.ww_wl_cbox.Bind(wx.EVT_CHECKBOX, self.OnCheckWWWL) | ||
800 | self.btn_exp_watershed.Bind(wx.EVT_BUTTON, self.OnExpandWatershed) | 805 | self.btn_exp_watershed.Bind(wx.EVT_BUTTON, self.OnExpandWatershed) |
801 | 806 | ||
802 | def ChangeMaskColour(self, pubsub_evt): | 807 | def ChangeMaskColour(self, pubsub_evt): |
@@ -851,5 +856,9 @@ class WatershedTool(EditionTools): | @@ -851,5 +856,9 @@ class WatershedTool(EditionTools): | ||
851 | value = self.check_box.GetValue() | 856 | value = self.check_box.GetValue() |
852 | Publisher.sendMessage('Set overwrite mask', value) | 857 | Publisher.sendMessage('Set overwrite mask', value) |
853 | 858 | ||
859 | + def OnCheckWWWL(self, evt): | ||
860 | + value = self.ww_wl_cbox.GetValue() | ||
861 | + Publisher.sendMessage('Set use ww wl', value) | ||
862 | + | ||
854 | def OnExpandWatershed(self, evt): | 863 | def OnExpandWatershed(self, evt): |
855 | Publisher.sendMessage('Expand watershed to 3D AXIAL') | 864 | Publisher.sendMessage('Expand watershed to 3D AXIAL') |