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 912  
913 913 ww = self.viewer.slice_.window_width
914 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 929 self.viewer.OnScrollBar(update3D=False)
931 930  
932 931 def get_coordinate_cursor(self):
... ... @@ -1017,19 +1016,24 @@ class WaterShedInteractorStyle(DefaultInteractorStyle):
1017 1016 mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:]
1018 1017 ww = self.viewer.slice_.window_width
1019 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 1039 def get_style(style):
... ...