def __init__(self, filename="", channelNum=-1): """ Constructor """ DataSource.__init__(self) # Name and path of the lsm-file: self.filename = filename if len(os.path.basename(self.filename)) > 4: self.imageName = os.path.basename(self.filename)[:-4] self.numericalAperture = 0 self.excitationWavelength = 0 self.timepoint = -1 self.shortname = os.path.basename(filename) self.path = "" # An lsm-file may contain multiple channels. However, LsmDataSource only # handles one channel. The following attribute indicates, which channel # within the lsm-file is hadled by this LsmDataSource instance. self.channelNum = channelNum self.setPath(filename) self.dataUnitSettings = {} self.spacing = None self.origin = None self.voxelsize = None # vtkLSMReader is used to do the actual reading: self.reader = vtkbxd.vtkLSMReader() #self.reader.DebugOn() self.reader.AddObserver("ProgressEvent", lib.messenger.send) lib.messenger.connect(self.reader, 'ProgressEvent', self.updateProgress) # If a filename was specified, the file is loaded if self.filename: self.path = os.path.dirname(filename) Logging.info("LsmDataSource created with file %s and channelNum=%d"%\ (self.filename, channelNum), kw = "lsmreader") try: f = open(self.convertFileName(filename)) f.close() except IOError, ex: Logging.error( "Failed to open LSM file", "Failed to open file %s for reading: %s" % (filename, str(ex))) return self.reader.SetFileName(self.convertFileName(self.filename)) self.reader.SetUpdateChannel(channelNum) self.reader.UpdateInformation() self.originalScalarRange = None self.getBitDepth() self.originalDimensions = self.reader.GetDimensions()[0:3] self.readTimeStamps()
def __init__(self, filename = "", channelNum = -1): """ Constructor """ DataSource.__init__(self) # Name and path of the lsm-file: self.filename = filename if len(os.path.basename(self.filename)) > 4: self.imageName = os.path.basename(self.filename)[:-4] self.numericalAperture = 0 self.excitationWavelength = 0 self.timepoint = -1 self.shortname = os.path.basename(filename) self.path = "" # An lsm-file may contain multiple channels. However, LsmDataSource only # handles one channel. The following attribute indicates, which channel # within the lsm-file is hadled by this LsmDataSource instance. self.channelNum = channelNum self.setPath(filename) self.dataUnitSettings = {} self.spacing = None self.origin = None self.voxelsize = None # vtkLSMReader is used to do the actual reading: self.reader = vtkbxd.vtkLSMReader() #self.reader.DebugOn() self.reader.AddObserver("ProgressEvent", lib.messenger.send) lib.messenger.connect(self.reader, 'ProgressEvent', self.updateProgress) # If a filename was specified, the file is loaded if self.filename: self.path = os.path.dirname(filename) Logging.info("LsmDataSource created with file %s and channelNum=%d"%\ (self.filename, channelNum), kw = "lsmreader") try: f = open(self.convertFileName(filename)) f.close() except IOError, ex: Logging.error("Failed to open LSM file", "Failed to open file %s for reading: %s" % (filename, str(ex))) return self.reader.SetFileName(self.convertFileName(self.filename)) self.reader.SetUpdateChannel(channelNum) self.reader.UpdateInformation() self.originalScalarRange = None self.getBitDepth() self.originalDimensions = self.reader.GetDimensions()[0:3] self.readTimeStamps()
#! /usr/bin/env python import vtk import vtkbxd import time D = "/media/sda12/Data/sample2.lsm" t = time.time() def elapsed(): global t return "(%.2fs elapsed)" % (time.time() - t) r1 = vtkbxd.vtkLSMReader() r1.SetFileName(D) r1.SetUpdateChannel(0) d1 = r1.GetOutput() itf1 = vtkbxd.vtkIntensityTransferFunction() itf1.SetBrightness(50.0) ctf1 = vtkbxd.vtkColorTransferFunction() ctf1.AddRGBPoint(0, 0, 0, 0) ctf1.AddRGBPoint(255.0, 0, 1.0, 0) print "Feeding channels to merge ", elapsed() merge = vtkbxd.vtkImageColorMerge() #merge.SetNumberOfThreads(5) merge.AddInput(d1) merge.AddLookupTable(ctf1)
#! /usr/bin/env python import vtk import vtkbxd import time D="/media/sda12/Data/sample2.lsm" t=time.time() def elapsed(): global t return "(%.2fs elapsed)"%(time.time()-t) r1=vtkbxd.vtkLSMReader() r1.SetFileName(D) r1.SetUpdateChannel(0) d1=r1.GetOutput() itf1=vtkbxd.vtkIntensityTransferFunction() itf1.SetBrightness(50.0) ctf1=vtkbxd.vtkColorTransferFunction() ctf1.AddRGBPoint(0,0,0,0) ctf1.AddRGBPoint(255.0,0,1.0,0) print "Feeding channels to merge ",elapsed() merge = vtkbxd.vtkImageColorMerge() #merge.SetNumberOfThreads(5) merge.AddInput(d1) merge.AddLookupTable(ctf1) merge.AddIntensityTransferFunction(itf1)