Commit c90d26bb44c2c8ad147e317641ba3bee8f288f76
1 parent
3749eea2
Exists in
select_part
Showing the selected part
Showing
2 changed files
with
21 additions
and
5 deletions
Show diff stats
invesalius/data/slice_.py
| @@ -574,6 +574,14 @@ class Slice(object): | @@ -574,6 +574,14 @@ class Slice(object): | ||
| 574 | 1: (0.0, 1.0, 0.0, 1.0), | 574 | 1: (0.0, 1.0, 0.0, 1.0), |
| 575 | 2: (1.0, 0.0, 0.0, 1.0)}) | 575 | 2: (1.0, 0.0, 0.0, 1.0)}) |
| 576 | final_image = self.do_blend(final_image, cimage) | 576 | final_image = self.do_blend(final_image, cimage) |
| 577 | + elif self.to_show_aux and self.current_mask: | ||
| 578 | + m = self.get_aux_slice(self.to_show_aux, orientation, slice_number) | ||
| 579 | + tmp_vimage = converters.to_vtk(m, self.spacing, slice_number, orientation) | ||
| 580 | + aux_image = self.do_custom_colour(tmp_vimage, {0: (0.0, 0.0, 0.0, 0.0), | ||
| 581 | + 1: (0.0, 0.0, 0.0, 0.0), | ||
| 582 | + 254: (1.0, 0.0, 0.0, 1.0), | ||
| 583 | + 255: (1.0, 0.0, 0.0, 1.0)}) | ||
| 584 | + final_image = self.do_blend(final_image, aux_image) | ||
| 577 | return final_image | 585 | return final_image |
| 578 | 586 | ||
| 579 | def get_image_slice(self, orientation, slice_number, number_slices=1, | 587 | def get_image_slice(self, orientation, slice_number, number_slices=1, |
invesalius/data/styles.py
| @@ -1931,7 +1931,7 @@ class RemoveMaskPartsInteractorStyle(FloodFillMaskInteractorStyle): | @@ -1931,7 +1931,7 @@ class RemoveMaskPartsInteractorStyle(FloodFillMaskInteractorStyle): | ||
| 1931 | class SelectPartConfig(object): | 1931 | class SelectPartConfig(object): |
| 1932 | __metaclass__= utils.Singleton | 1932 | __metaclass__= utils.Singleton |
| 1933 | def __init__(self): | 1933 | def __init__(self): |
| 1934 | - self.matrix = None | 1934 | + self.mask = None |
| 1935 | self.con_3d = 6 | 1935 | self.con_3d = 6 |
| 1936 | 1936 | ||
| 1937 | 1937 | ||
| @@ -1956,7 +1956,10 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | @@ -1956,7 +1956,10 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | ||
| 1956 | self.AddObserver("LeftButtonPressEvent", self.OnSelect) | 1956 | self.AddObserver("LeftButtonPressEvent", self.OnSelect) |
| 1957 | 1957 | ||
| 1958 | def CleanUp(self): | 1958 | def CleanUp(self): |
| 1959 | - self.config.matrix = None | 1959 | + if self.config.mask: |
| 1960 | + self.config.mask = None | ||
| 1961 | + del self.viewer.slice_.aux_matrices['SELECT'] | ||
| 1962 | + self.viewer.slice_.to_show_aux = '' | ||
| 1960 | 1963 | ||
| 1961 | def OnSelect(self, obj, evt): | 1964 | def OnSelect(self, obj, evt): |
| 1962 | if (self.viewer.slice_.buffer_slices[self.orientation].mask is None): | 1965 | if (self.viewer.slice_.buffer_slices[self.orientation].mask is None): |
| @@ -1986,10 +1989,15 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | @@ -1986,10 +1989,15 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | ||
| 1986 | bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8') | 1989 | bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8') |
| 1987 | self.viewer.slice_.do_threshold_to_all_slices() | 1990 | self.viewer.slice_.do_threshold_to_all_slices() |
| 1988 | 1991 | ||
| 1989 | - if self.config.matrix is None: | 1992 | + if self.config.mask is None: |
| 1990 | self._create_new_mask() | 1993 | self._create_new_mask() |
| 1991 | 1994 | ||
| 1992 | - floodfill.floodfill_threshold(mask, [[x, y, z]], self.t0, self.t1, self.fill_value, bstruct, self.config.matrix[1:, 1:, 1:]) | 1995 | + floodfill.floodfill_threshold(mask, [[x, y, z]], self.t0, self.t1, self.fill_value, bstruct, self.config.mask.matrix[1:, 1:, 1:]) |
| 1996 | + self.viewer.slice_.aux_matrices['SELECT'] = self.config.mask.matrix[1:, 1:, 1:] | ||
| 1997 | + self.viewer.slice_.to_show_aux = 'SELECT' | ||
| 1998 | + | ||
| 1999 | + self.config.mask.was_edited = True | ||
| 2000 | + Publisher.sendMessage('Reload actual slice') | ||
| 1993 | 2001 | ||
| 1994 | def _create_new_mask(self): | 2002 | def _create_new_mask(self): |
| 1995 | mask = self.viewer.slice_.create_new_mask(show=False) | 2003 | mask = self.viewer.slice_.create_new_mask(show=False) |
| @@ -1998,7 +2006,7 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | @@ -1998,7 +2006,7 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): | ||
| 1998 | mask.matrix[:, 0, :] = 1 | 2006 | mask.matrix[:, 0, :] = 1 |
| 1999 | mask.matrix[:, :, 0] = 1 | 2007 | mask.matrix[:, :, 0] = 1 |
| 2000 | 2008 | ||
| 2001 | - self.config.matrix = mask.matrix | 2009 | + self.config.mask = mask |
| 2002 | 2010 | ||
| 2003 | def get_coordinate_cursor(self): | 2011 | def get_coordinate_cursor(self): |
| 2004 | # Find position | 2012 | # Find position |