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