def load_image(self, *args): if debug: print "loc3djr_maintoolbar.load_image()" debug = False reader = None pars = None if debug: reader = vtk.vtkImageReader2() reader.SetDataScalarTypeToUnsignedShort() reader.SetDataByteOrderToLittleEndian() reader.SetFileNameSliceOffset(120) reader.SetDataExtent(0, 511, 0, 511, 0, 106) reader.SetFilePrefix('/home/jdhunter/seizure/data/ThompsonK/CT/raw/1.2.840.113619.2.55.1.1762864819.1957.1074338393.') reader.SetFilePattern( '%s%d.raw') reader.SetDataSpacing(25.0/512, 25.0/512, 0.125 ) reader.Update() else: dlg = widgets['dlgReader'] response = dlg.run() if response == gtk.RESPONSE_OK: try: reader = widgets.reader except AttributeError: pars = widgets.get_params() pars = widgets.validate(pars) if pars is None: error_msg('Could not validate the parameters', dlg) return reader = widgets.get_reader(pars) pars = widgets.get_params() pars = widgets.validate(pars) dlg.hide() if debug: print "reader=", reader if not reader: if debug: print "hit cancel, see if we can survive" else: imageData = reader.GetOutput() if debug: print "pars=", pars print "loc3djr_maintoolbar.load_image(): reader.GetOutput() is " , imageData print "load_image(): imageData.SetSpacing(", reader.GetDataSpacing(), " )" imageData.SetSpacing(reader.GetDataSpacing()) if debug: print "calling EventHandler().notify('set image data', imageData)" EventHandler().notify('set image data', imageData) if type(reader) == vtkNiftiImageReader: if debug: print "calling EventHandler().setNifti()" #XXX EventHandler().setNifti(reader.GetFilename()) EventHandler().setNifti(reader.GetQForm())
def load_image(self, *args): print "loc3djr_maintoolbar.load_image()" debug = False reader = None pars = None if debug: reader = vtk.vtkImageReader2() reader.SetDataScalarTypeToUnsignedShort() reader.SetDataByteOrderToLittleEndian() reader.SetFileNameSliceOffset(120) reader.SetDataExtent(0, 511, 0, 511, 0, 106) reader.SetFilePrefix( '/home/jdhunter/seizure/data/ThompsonK/CT/raw/1.2.840.113619.2.55.1.1762864819.1957.1074338393.' ) reader.SetFilePattern('%s%d.raw') reader.SetDataSpacing(25.0 / 512, 25.0 / 512, 0.125) reader.Update() else: dlg = widgets['dlgReader'] response = dlg.run() if response == gtk.RESPONSE_OK: try: reader = widgets.reader except AttributeError: pars = widgets.get_params() pars = widgets.validate(pars) if pars is None: error_msg('Could not validate the parameters', dlg) return reader = widgets.get_reader(pars) pars = widgets.get_params() pars = widgets.validate(pars) dlg.hide() print "reader=", reader if not reader: print "hit cancel, see if we can survive" else: imageData = reader.GetOutput() print "pars=", pars print "loc3djr_maintoolbar.load_image(): reader.GetOutput() is ", imageData print "load_image(): imageData.SetSpacing(", reader.GetDataSpacing( ), " )" imageData.SetSpacing(reader.GetDataSpacing()) print "calling EventHandler().notify('set image data', imageData)" EventHandler().notify('set image data', imageData) if type(reader) == vtkNiftiImageReader: print "calling EventHandler().setNifti()" #XXX EventHandler().setNifti(reader.GetFilename()) EventHandler().setNifti(reader.GetQForm())
def __init__(self, xyz, radius=None, rgb=None): # if radius is not defined, force it to be some percentage of # the total dimensions of the scanz.. if (radius == None): pars = widgets.get_params() if debug: print "pars.dfov is ", pars.dfov if debug: print "pars.dimensions[0] is" , pars.dimensions[0] ratio = float(pars.dfov)/float(pars.dimensions[0]) radius = ratio * 3 if debug: print "setting radius=", radius if rgb is None: rgb = (0,0,1) self.sphere = vtk.vtkSphereSource() self.sphere.SetRadius(radius) res = 20 self.sphere.SetThetaResolution(res) self.sphere.SetPhiResolution(res) self.sphere.SetCenter(xyz) mapper = vtk.vtkPolyDataMapper() mapper.SetInput(self.sphere.GetOutput()) mapper.ImmediateModeRenderingOn() self.SetMapper(mapper) self.GetProperty().SetColor( rgb ) self.label = '' self.labelColor = (1,1,0)
def load_mri(self, *args): print "loc3djr_maintoolbar.load_mri()" if self.niftiFilename is not None: fname=self.niftiFilename else: dialog = gtk.FileSelection('Choose nifti file') dialog.set_transient_for(widgets['dlgReader']) dialog.set_filename(shared.get_last_dir()) response = dialog.run() fname = dialog.get_filename() dialog.destroy() if response == gtk.RESPONSE_OK: print fname else: return #reader = vtkNiftiImageReader() #reader.SetFileName(fname) #reader.Update() pars = Params() if fname.endswith(".nii.gz"): pars.extension=".".join(fname.split(".")[-2:]) pars.pattern=".".join(fname.split(os.path.sep)[-1].split(".")[:-2]) #elif fname.endswith(".nii"): # pars.extension=".nii" else: pars.extension=".".join(fname.split(".")[-1:]) pars.pattern=".".join(fname.split(os.path.sep)[-1].split(".")[:-1]) print "pars.extension", pars.extension print "pars.pattern", pars.pattern pars.dir=os.path.dirname(fname)#sep.join(fname.split(os.path.sep)[:-1]) print "pars.dir", pars.dir pars.readerClass='vtkNiftiImageReader' reader=widgets.get_reader(pars) pars.first=1 pars.last=reader.GetDepth() print "reader=", reader if not reader: print "hit cancel, see if we can survive" else: pars=widgets.get_params() pars=widgets.validate(pars) imageData = reader.GetOutput() #stupid workaround, somehow imageData.Extent is not written. dunno why #maybe its in vtkImageImportFromArray imageData.SetExtent(reader.GetDataExtent()) print "loc3djr_maintoolbar.load_mri(): reader.GetOutput() is " , imageData print "load_mri(): imageData.SetSpacing(", reader.GetDataSpacing(), " )" imageData.SetSpacing(reader.GetDataSpacing()) print "calling EventHandler().notify('set image data', imageData)" EventHandler().notify('set image data', imageData) print "calling EventHandler().setNifti()" EventHandler().setNifti(reader.GetQForm(),reader.GetDataSpacing())
def __init__(self, xyz, radius=None, rgb=None): # if radius is not defined, force it to be some percentage of # the total dimensions of the scanz.. if (radius == None): pars = widgets.get_params() print "pars.dfov is ", pars.dfov print "pars.dimensions[0] is", pars.dimensions[0] ratio = float(pars.dfov) / float(pars.dimensions[0]) radius = ratio * 3 print "setting radius=", radius if rgb is None: rgb = (0, 0, 1) self.sphere = vtk.vtkSphereSource() self.sphere.SetRadius(radius) res = 20 self.sphere.SetThetaResolution(res) self.sphere.SetPhiResolution(res) self.sphere.SetCenter(xyz) mapper = vtk.vtkPolyDataMapper() mapper.SetInput(self.sphere.GetOutput()) mapper.ImmediateModeRenderingOn() self.SetMapper(mapper) self.GetProperty().SetColor(rgb) self.label = '' self.labelColor = (1, 1, 0)