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 | 740 | __metaclass__= utils.Singleton |
741 | 741 | def __init__(self): |
742 | 742 | self.operation = BRUSH_FOREGROUND |
743 | + self.use_ww_wl = True | |
744 | + | |
743 | 745 | Publisher.subscribe(self.set_operation, 'Set watershed operation') |
746 | + Publisher.subscribe(self.set_use_ww_wl, 'Set use ww wl') | |
744 | 747 | |
745 | 748 | def set_operation(self, pubsub_evt): |
746 | 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 | 755 | class WaterShedInteractorStyle(DefaultInteractorStyle): |
750 | 756 | def __init__(self, viewer): |
... | ... | @@ -1004,8 +1010,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): |
1004 | 1010 | wl = self.viewer.slice_.window_level |
1005 | 1011 | |
1006 | 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 | 1020 | if self.viewer.overwrite_mask: |
1011 | 1021 | mask[:] = 0 |
... | ... | @@ -1111,8 +1121,12 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): |
1111 | 1121 | ww = self.viewer.slice_.window_width |
1112 | 1122 | wl = self.viewer.slice_.window_level |
1113 | 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 | 1131 | if self.viewer.overwrite_mask: |
1118 | 1132 | mask[:] = 0 | ... | ... |
invesalius/gui/task_slice.py
... | ... | @@ -773,7 +773,10 @@ class WatershedTool(EditionTools): |
773 | 773 | |
774 | 774 | # LINE 5 |
775 | 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 | 778 | self.check_box = check_box |
779 | + self.ww_wl_cbox = ww_wl_cbox | |
777 | 780 | |
778 | 781 | # Line 6 |
779 | 782 | self.btn_exp_watershed = wx.Button(self, -1, _('Expand watershed to 3D')) |
... | ... | @@ -783,6 +786,7 @@ class WatershedTool(EditionTools): |
783 | 786 | sizer.Add(text1, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
784 | 787 | sizer.Add(line2, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
785 | 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 | 790 | sizer.Add(self.btn_exp_watershed, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
787 | 791 | sizer.Fit(self) |
788 | 792 | |
... | ... | @@ -797,6 +801,7 @@ class WatershedTool(EditionTools): |
797 | 801 | self.Bind(wx.EVT_MENU, self.OnMenu) |
798 | 802 | self.combo_brush_op.Bind(wx.EVT_COMBOBOX, self.OnComboBrushOp) |
799 | 803 | self.check_box.Bind(wx.EVT_CHECKBOX, self.OnCheckOverwriteMask) |
804 | + self.ww_wl_cbox.Bind(wx.EVT_CHECKBOX, self.OnCheckWWWL) | |
800 | 805 | self.btn_exp_watershed.Bind(wx.EVT_BUTTON, self.OnExpandWatershed) |
801 | 806 | |
802 | 807 | def ChangeMaskColour(self, pubsub_evt): |
... | ... | @@ -851,5 +856,9 @@ class WatershedTool(EditionTools): |
851 | 856 | value = self.check_box.GetValue() |
852 | 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 | 863 | def OnExpandWatershed(self, evt): |
855 | 864 | Publisher.sendMessage('Expand watershed to 3D AXIAL') | ... | ... |