Commit dc38167c499527cf0b2b1e1b2781e4e0bd4367c9

Authored by Thiago Franco de Moraes
1 parent 114c8b4e
Exists in watershed

Only doing watershed when user marks back and foreground.

Showing 1 changed file with 27 additions and 23 deletions   Show diff stats
invesalius/data/styles.py
@@ -912,21 +912,20 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): @@ -912,21 +912,20 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
912 912
913 ww = self.viewer.slice_.window_width 913 ww = self.viewer.slice_.window_width
914 wl = self.viewer.slice_.window_level 914 wl = self.viewer.slice_.window_level
  915 +
  916 + if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers:
  917 + tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size)
  918 + tmp_mask = watershed(tmp_image, markers)
915 919
916 - #tmp_image = get_LUT_value(image, ww, wl).astype('uint16')  
917 - tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size)  
918 - print tmp_image.dtype, tmp_image.min(), tmp_image.max()  
919 - tmp_mask = watershed(tmp_image, markers)  
920 -  
921 - if self.viewer.overwrite_mask:  
922 - mask[:] = 0  
923 - mask[tmp_mask == 1] = 253  
924 - else:  
925 - mask[(tmp_mask==2) & ((mask == 0) | (mask == 2) | (mask == 253))] = 2  
926 - mask[(tmp_mask==1) & ((mask == 0) | (mask == 2) | (mask == 253))] = 253 920 + if self.viewer.overwrite_mask:
  921 + mask[:] = 0
  922 + mask[tmp_mask == 1] = 253
  923 + else:
  924 + mask[(tmp_mask==2) & ((mask == 0) | (mask == 2) | (mask == 253))] = 2
  925 + mask[(tmp_mask==1) & ((mask == 0) | (mask == 2) | (mask == 253))] = 253
927 926
928 927
929 - self.viewer.slice_.current_mask.was_edited = True 928 + self.viewer.slice_.current_mask.was_edited = True
930 self.viewer.OnScrollBar(update3D=False) 929 self.viewer.OnScrollBar(update3D=False)
931 930
932 def get_coordinate_cursor(self): 931 def get_coordinate_cursor(self):
@@ -1017,19 +1016,24 @@ class WaterShedInteractorStyle(DefaultInteractorStyle): @@ -1017,19 +1016,24 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
1017 mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:] 1016 mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
1018 ww = self.viewer.slice_.window_width 1017 ww = self.viewer.slice_.window_width
1019 wl = self.viewer.slice_.window_level 1018 wl = self.viewer.slice_.window_level
1020 - tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size)  
1021 - print tmp_image  
1022 - tmp_mask = watershed(tmp_image, markers) 1019 + if BRUSH_BACKGROUND in markers and BRUSH_FOREGROUND in markers:
  1020 + tmp_image = ndimage.morphological_gradient(get_LUT_value(image, ww, wl).astype('uint16'), self.mg_size)
  1021 + tmp_mask = watershed(tmp_image, markers)
1023 1022
1024 - mask[:] = 0  
1025 - mask[(tmp_mask == 1)] = 253  
1026 - #mask[:] = tmp_mask  
1027 - self.viewer.slice_.current_mask.matrix[0] = 1  
1028 - self.viewer.slice_.current_mask.matrix[:, 0, :] = 1  
1029 - self.viewer.slice_.current_mask.matrix[:, :, 0] = 1 1023 + if self.viewer.overwrite_mask:
  1024 + mask[:] = 0
  1025 + mask[tmp_mask == 1] = 253
  1026 + else:
  1027 + mask[(tmp_mask==2) & ((mask == 0) | (mask == 2) | (mask == 253))] = 2
  1028 + mask[(tmp_mask==1) & ((mask == 0) | (mask == 2) | (mask == 253))] = 253
1030 1029
1031 - self.viewer.slice_.discard_all_buffers()  
1032 - self.viewer.OnScrollBar(update3D=False) 1030 + #mask[:] = tmp_mask
  1031 + self.viewer.slice_.current_mask.matrix[0] = 1
  1032 + self.viewer.slice_.current_mask.matrix[:, 0, :] = 1
  1033 + self.viewer.slice_.current_mask.matrix[:, :, 0] = 1
  1034 +
  1035 + self.viewer.slice_.discard_all_buffers()
  1036 + self.viewer.OnScrollBar(update3D=False)
1033 1037
1034 1038
1035 def get_style(style): 1039 def get_style(style):