Commit dc38167c499527cf0b2b1e1b2781e4e0bd4367c9
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): |