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