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 |