def __init__(self, srxplanarconfig=None, configfile=None, args=None, **kwargs): ''' init srxplanar form a SrXplanarConfig instance, or config file, or args passed from cmd or kwargs. If both SrXplanarConfig instance and other configfile/args/kwargs is specified, it will first init from config instance then update using configfile/args/kwargs :param srxplanarconfig: SrXplanarConfig, init srxplanar from a config instance :param configfile: string, name of config file :param args: list of str, usually be sys.argv :param kwargs: you can use like 'xbeamcenter=1024' or a dict to update the value of xbeamcenter ''' if srxplanarconfig != None: self.config = srxplanarconfig self.config.updateConfig(filename=configfile, args=args, **kwargs) else: self.config = SrXplanarConfig(filename=configfile, args=args, **kwargs) # init modulars self.loadimage = LoadImage(self.config) self.calculate = Calculate(self.config) self.mask = Mask(self.config, self.calculate) self.saveresults = SaveResults(self.config) return
def createMask(self, filename=None, pic=None, addmask=None): ''' create and save a mask according to addmask, pic, 1 stands for masked pixel in saved file :param filename: name of mask file to save, 'mask.npy' if it is None :param pic: 2d image array, may used in generating dynamic mask, Be careful if this one is flipped or not :param addmask: list of str, control how to generate mask, see Mask module for detail :return: 2d array, 1 stands for masked pixel here ''' filename = self.config.createmask if filename == None else filename filename = 'mask.npy' if filename == '' else filename addmask = self.config.addmask if addmask == None else addmask if not hasattr(self, 'mask'): self.mask = Mask(self.config) if not hasattr(self, 'loadimage'): self.loadimage = LoadImage(self.config) if pic == None: filelist = self.loadimage.genFileList() if hasattr(self, 'pic'): if self.pic != None: pic = self.pic else: pic = self.loadimage.loadImage( filelist[0]) if len(filelist) > 0 else None else: pic = self.loadimage.loadImage( filelist[0]) if len(filelist) > 0 else None rv = self.mask.saveMask(filename, pic, addmask) return rv