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') | ... | ... |