def addColorLayer(self, layer=None, name='Unnamed', tip='', color=None, alpha=0.5): ''' add a [layer], a np.array (2d or 3d), as colour overlay to the image ''' if layer is None: s = self.image.shape if len(s) == 4: # multi layer color image s = s[1:-1] elif len(s) == 3: if s[-1] == 3: # single layer color image s = s[:-1] else: # multi layer grey image s = s[1:] layer = np.zeros(shape=s) if isColor(layer): layer = toGray(layer) if color is None: # set colour as function of the number of colorItems: color = pg.intColor(len(self.cItems)).rgb() cItem = ColorLayerItem(layer, imageWidget=self, color=color, alpha=alpha ) name = incrementName(list(self.cItems.keys()), name) self.cItems[name] = cItem self.view.addItem(cItem) self.sigOverlayAdded.emit(cItem, name, tip) return cItem
def addColorLayer(self, layer=None, name='Unnamed', tip='', color=None, alpha=0.5): ''' add a [layer], a np.array (2d or 3d), as colour overlay to the image ''' if layer is None: s = self.image.shape if len(s) == 4: # multi layer color image s = s[1:-1] elif len(s) == 3: if s[-1] == 3: # single layer color image s = s[:-1] else: #multi layer grey image s = s[1:] layer = np.zeros(shape=s) if isColor(layer): layer = toGray(layer) if color is None: #set colour as function of the number of colorItems: color = pg.intColor(len(self.cItems)).rgb() cItem = ColorLayerItem(layer, imageWidget=self, color=color, alpha=alpha ) name = incrementName(self.cItems.keys(), name) self.cItems[name] = cItem self.view.addItem(cItem) self.sigOverlayAdded.emit(cItem, name, tip) return cItem
def __init__(self, origQtGuiClass, *args, **kwargs): self.save_only_last_log = True #means: only the last log event would be #saved if not QtRec.save_history self.log_childs_inst = {} self.log_childs_name = {} self._logparent = None # take the log-name if given, elsewise use the class name name = kwargs.get('logname') if name: kwargs.pop('logname') else: name = self.__class__.__name__ # for logging it's sometimes more usefull to use a instance-parent # than given through self.parent() p = kwargs.get('logparent') if p: self._logparent = p kwargs.pop('logparent') # init base class here after all foreign contents from kwargs are removed origQtGuiClass.__init__(self, *args, **kwargs) if not p: p = self.parent() if p: while p: # find closest parent that is an instance of QtRecBase # add this instance as child with an individual name to that # parents log-child-list #TODO1 invalid widget überspringen - wenn es keinen valid parent gibt: fehlermeldung if isinstance(p,QtRecBase): name = incrementName(p.log_childs_name.keys(), name) p.log_childs_inst[self] = name p.log_childs_name[name] = self break p = p.parent() #the top QGuiObject must be a window elif self == self.window(): # add this window to the windows known by QtRec QtRec.core._windows.append(self) else: raise NameError('parent not given')