Commit 14811233b42064ca742564c0ec197c837cfb46e8
1 parent
46111ecb
Exists in
watershed
Removing aux matrix when opening a new dicom dir
Showing
3 changed files
with
20 additions
and
25 deletions
Show diff stats
invesalius/control.py
| ... | ... | @@ -128,6 +128,11 @@ class Controller(): |
| 128 | 128 | answer = dialog.SaveChangesDialog2(filename) |
| 129 | 129 | if answer: |
| 130 | 130 | self.ShowDialogSaveProject() |
| 131 | + self.CloseProject() | |
| 132 | + #Publisher.sendMessage("Enable state project", False) | |
| 133 | + Publisher.sendMessage('Set project name') | |
| 134 | + Publisher.sendMessage("Stop Config Recording") | |
| 135 | + Publisher.sendMessage("Set slice interaction style", const.STATE_DEFAULT) | |
| 131 | 136 | # Import project |
| 132 | 137 | dirpath = dialog.ShowImportDirDialog() |
| 133 | 138 | if dirpath and not os.listdir(dirpath): | ... | ... |
invesalius/data/slice_.py
| ... | ... | @@ -246,6 +246,7 @@ class Slice(object): |
| 246 | 246 | |
| 247 | 247 | if (state == const.SLICE_STATE_EDITOR): |
| 248 | 248 | Publisher.sendMessage('Set interactor default cursor') |
| 249 | + self.state = new_state | |
| 249 | 250 | |
| 250 | 251 | def OnCloseProject(self, pubsub_evt): |
| 251 | 252 | self.CloseProject() |
| ... | ... | @@ -258,9 +259,18 @@ class Slice(object): |
| 258 | 259 | os.remove(f) |
| 259 | 260 | self.current_mask = None |
| 260 | 261 | |
| 262 | + for name in self.aux_matrices: | |
| 263 | + m = self.aux_matrices[name] | |
| 264 | + f = m.filename | |
| 265 | + m._mmap.close() | |
| 266 | + m = None | |
| 267 | + os.remove(f) | |
| 268 | + self.aux_matrices = {} | |
| 269 | + | |
| 261 | 270 | self.values = None |
| 262 | 271 | self.nodes = None |
| 263 | 272 | self.from_= OTHER |
| 273 | + self.state = const.STATE_DEFAULT | |
| 264 | 274 | |
| 265 | 275 | self.number_of_colours = 256 |
| 266 | 276 | self.saturation_range = (0, 0) |
| ... | ... | @@ -392,7 +402,7 @@ class Slice(object): |
| 392 | 402 | def create_temp_mask(self): |
| 393 | 403 | temp_file = tempfile.mktemp() |
| 394 | 404 | shape = self.matrix.shape |
| 395 | - matrix = numpy.memmap(temp_file, mode='w+', dtype='int8', shape=shape) | |
| 405 | + matrix = numpy.memmap(temp_file, mode='w+', dtype='uint8', shape=shape) | |
| 396 | 406 | return temp_file, matrix |
| 397 | 407 | |
| 398 | 408 | def edit_mask_pixel(self, operation, index, position, radius, orientation): | ... | ... |
invesalius/gui/task_slice.py
| ... | ... | @@ -281,6 +281,7 @@ class InnerFoldPanel(wx.Panel): |
| 281 | 281 | def __bind_pubsub_evt(self): |
| 282 | 282 | Publisher.subscribe(self.OnRetrieveStyle, 'Retrieve task slice style') |
| 283 | 283 | Publisher.subscribe(self.OnDisableStyle, 'Disable task slice style') |
| 284 | + Publisher.subscribe(self.OnCloseProject, 'Close project data') | |
| 284 | 285 | |
| 285 | 286 | def OnFoldPressCaption(self, evt): |
| 286 | 287 | id = evt.GetTag().GetId() |
| ... | ... | @@ -317,6 +318,9 @@ class InnerFoldPanel(wx.Panel): |
| 317 | 318 | if (self.last_style == const.SLICE_STATE_EDITOR): |
| 318 | 319 | Publisher.sendMessage('Disable style', const.SLICE_STATE_EDITOR) |
| 319 | 320 | |
| 321 | + def OnCloseProject(self, pubsub_evt): | |
| 322 | + self.fold_panel.Expand(self.fold_panel.GetFoldPanel(0)) | |
| 323 | + | |
| 320 | 324 | def GetMaskSelected(self): |
| 321 | 325 | x= self.mask_prop_panel.GetMaskSelected() |
| 322 | 326 | return self.mask_prop_panel.GetMaskSelected() |
| ... | ... | @@ -758,13 +762,8 @@ class WatershedTool(EditionTools): |
| 758 | 762 | line2.Add(combo_brush_op, 1, wx.EXPAND|wx.TOP|wx.RIGHT|wx.LEFT, 5) |
| 759 | 763 | |
| 760 | 764 | ## LINE 3 |
| 761 | - text_thresh = wx.StaticText(self, -1, _("Brush threshold range:")) | |
| 762 | 765 | |
| 763 | 766 | ## LINE 4 |
| 764 | - gradient_thresh = grad.GradientCtrl(self, -1, 0, 5000, 0, 5000, | |
| 765 | - (0, 0, 255, 100)) | |
| 766 | - self.gradient_thresh = gradient_thresh | |
| 767 | - self.bind_evt_gradient = True | |
| 768 | 767 | |
| 769 | 768 | # LINE 5 |
| 770 | 769 | check_box = wx.CheckBox(self, -1, _("Overwrite mask")) |
| ... | ... | @@ -777,9 +776,6 @@ class WatershedTool(EditionTools): |
| 777 | 776 | sizer = wx.BoxSizer(wx.VERTICAL) |
| 778 | 777 | sizer.Add(text1, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
| 779 | 778 | sizer.Add(line2, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
| 780 | - sizer.Add(text_thresh, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) | |
| 781 | - sizer.Add(gradient_thresh, 0, wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT| | |
| 782 | - wx.BOTTOM, 6) | |
| 783 | 779 | sizer.Add(check_box, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
| 784 | 780 | sizer.Add(self.btn_exp_watershed, 0, wx.GROW|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5) |
| 785 | 781 | sizer.Fit(self) |
| ... | ... | @@ -788,24 +784,15 @@ class WatershedTool(EditionTools): |
| 788 | 784 | self.Update() |
| 789 | 785 | self.SetAutoLayout(1) |
| 790 | 786 | |
| 791 | - self.__bind_events() | |
| 792 | 787 | self.__bind_events_wx() |
| 793 | 788 | |
| 794 | 789 | |
| 795 | 790 | def __bind_events_wx(self): |
| 796 | 791 | self.Bind(wx.EVT_MENU, self.OnMenu) |
| 797 | - self.Bind(grad.EVT_THRESHOLD_CHANGED, self.OnGradientChanged, | |
| 798 | - self.gradient_thresh) | |
| 799 | 792 | self.combo_brush_op.Bind(wx.EVT_COMBOBOX, self.OnComboBrushOp) |
| 800 | 793 | self.check_box.Bind(wx.EVT_CHECKBOX, self.OnCheckOverwriteMask) |
| 801 | 794 | self.btn_exp_watershed.Bind(wx.EVT_BUTTON, self.OnExpandWatershed) |
| 802 | 795 | |
| 803 | - def __bind_events(self): | |
| 804 | - Publisher.subscribe(self.SetThresholdBounds, | |
| 805 | - 'Update threshold limits') | |
| 806 | - Publisher.subscribe(self.ChangeMaskColour, 'Change mask colour') | |
| 807 | - Publisher.subscribe(self.SetGradientColour, 'Add mask') | |
| 808 | - | |
| 809 | 796 | def ChangeMaskColour(self, pubsub_evt): |
| 810 | 797 | colour = pubsub_evt.data |
| 811 | 798 | self.gradient_thresh.SetColour(colour) |
| ... | ... | @@ -830,13 +817,6 @@ class WatershedTool(EditionTools): |
| 830 | 817 | self.gradient_thresh.SetMinValue(thresh_min) |
| 831 | 818 | self.gradient_thresh.SetMaxValue(thresh_max) |
| 832 | 819 | |
| 833 | - def OnGradientChanged(self, evt): | |
| 834 | - thresh_min = self.gradient_thresh.GetMinValue() | |
| 835 | - thresh_max = self.gradient_thresh.GetMaxValue() | |
| 836 | - if self.bind_evt_gradient: | |
| 837 | - Publisher.sendMessage('Set edition threshold values', | |
| 838 | - (thresh_min, thresh_max)) | |
| 839 | - | |
| 840 | 820 | def OnMenu(self, evt): |
| 841 | 821 | SQUARE_BMP = wx.Bitmap("../icons/brush_square.jpg", wx.BITMAP_TYPE_JPEG) |
| 842 | 822 | CIRCLE_BMP = wx.Bitmap("../icons/brush_circle.jpg", wx.BITMAP_TYPE_JPEG) | ... | ... |