def add_roi(self,*args):
        dialog = gtk.FileSelection('Choose filename for ROI mask')
        dialog.set_filename(shared.get_last_dir())
        dialog.show()
        response = dialog.run()
        if response==gtk.RESPONSE_OK:
            fname = dialog.get_filename()
            dialog.destroy()
            try: 
                #Actually add ROI 
                self.nroi+=1
                tree_iter = self.tree_roi.append(None)
                self.tree_roi.set(tree_iter,0,self.nroi,1,os.path.split(fname)[1],2,fname,3,True)
                self.__update_treeview_visibility()

                roi_image_reader = vtkNiftiImageReader()
                roi_image_reader.SetFileName(fname)
                roi_image_reader.Update()
                roi_id = self.tree_roi.get(tree_iter,0) 
                self.paramd[roi_id] = RoiParams(roi_image_reader.GetOutput())
                #self.paramd[roi_id].update_pipeline()
                #print self.paramd[roi_id].intensity
                shared.set_file_selection(fname)
            except IOError:
                error_msg(
                    'Could not load ROI mask from %s' % fname, 
                    )
            finally:
                self.__update_treeview_visibility()
        else: dialog.destroy()
        self.render()
Beispiel #2
0
    def load_nifti(self, filename):
        if filename==None:
            dialog = gtk.FileSelection('Choose nifti file')
            #dialog = gtk.FileChooserDialog('Choose nifti file')
            #dialog.set_transient_for(widgets['dlgReader'])
            dialog.set_filename(shared.get_last_dir())
            response = dialog.run()
            filename = dialog.get_filename()
            dialog.destroy()
            if response == gtk.RESPONSE_OK:
                print "Loading:", filename
            else:
                return False

        shared.set_file_selection(filename)
        
        reader = vtkNiftiImageReader()
        reader.SetFileName(filename)
        reader.Update()

        if not reader:
            return False
        else:
            imageData = reader.GetOutput()
            EventHandler().notify('set image data', imageData)
            EventHandler().notify("set axes directions")
            EventHandler().set_nifti(reader)
            self.store_current_camera_fpus()
            EventHandler().notify("render now")
            return True