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 | 574 | 1: (0.0, 1.0, 0.0, 1.0), |
| 575 | 575 | 2: (1.0, 0.0, 0.0, 1.0)}) |
| 576 | 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 | 585 | return final_image |
| 578 | 586 | |
| 579 | 587 | def get_image_slice(self, orientation, slice_number, number_slices=1, | ... | ... |
invesalius/data/styles.py
| ... | ... | @@ -1931,7 +1931,7 @@ class RemoveMaskPartsInteractorStyle(FloodFillMaskInteractorStyle): |
| 1931 | 1931 | class SelectPartConfig(object): |
| 1932 | 1932 | __metaclass__= utils.Singleton |
| 1933 | 1933 | def __init__(self): |
| 1934 | - self.matrix = None | |
| 1934 | + self.mask = None | |
| 1935 | 1935 | self.con_3d = 6 |
| 1936 | 1936 | |
| 1937 | 1937 | |
| ... | ... | @@ -1956,7 +1956,10 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): |
| 1956 | 1956 | self.AddObserver("LeftButtonPressEvent", self.OnSelect) |
| 1957 | 1957 | |
| 1958 | 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 | 1964 | def OnSelect(self, obj, evt): |
| 1962 | 1965 | if (self.viewer.slice_.buffer_slices[self.orientation].mask is None): |
| ... | ... | @@ -1986,10 +1989,15 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): |
| 1986 | 1989 | bstruct = np.array(generate_binary_structure(3, CON3D[self.config.con_3d]), dtype='uint8') |
| 1987 | 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 | 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 | 2002 | def _create_new_mask(self): |
| 1995 | 2003 | mask = self.viewer.slice_.create_new_mask(show=False) |
| ... | ... | @@ -1998,7 +2006,7 @@ class SelectMaskPartsInteractorStyle(DefaultInteractorStyle): |
| 1998 | 2006 | mask.matrix[:, 0, :] = 1 |
| 1999 | 2007 | mask.matrix[:, :, 0] = 1 |
| 2000 | 2008 | |
| 2001 | - self.config.matrix = mask.matrix | |
| 2009 | + self.config.mask = mask | |
| 2002 | 2010 | |
| 2003 | 2011 | def get_coordinate_cursor(self): |
| 2004 | 2012 | # Find position | ... | ... |