class VispyLayer(Layer): def __init__(self, renderer, data, cmap='viridis', clim=(0, 1), interp='nearest', alpha=100, order=1): super().__init__(renderer, data, cmap=cmap, clim=clim, interp=interp, alpha=alpha, order=order) self.visual = ImageVisual(self._data, clim=self._clim, cmap=self._cmap, interpolation=self._interp) self.alphaFilter = Alpha(self._alpha / 100.) self.visual.attach(self.alphaFilter) self._rescale() def set_order(self, order): super().set_order(order) self.visual.transform.translate = (-1, 1, -.01 * order) def _convert_cmap(self, cmap): if type(cmap) == list: cmap = Colormap(ColorArray(cmap)) return cmap def _rescale(self): height, width = self._data.shape[:2] vscale = -2. / height hscale = 2. / width zdepth = -0.01 * self._order transform = transforms.STTransform(scale=(hscale, vscale), translate=(-1, 1, zdepth)) self.visual.transform = transform def update_image(self, data, **kwargs): self.visual.set_data(data) if 'clim' in kwargs: self.visual.clim = kwargs['clim'] if 'cmap' in kwargs: cmap = self._convert_cmap(kwargs['cmap']) self.visual.cmap = cmap if 'interp' in kwargs: self.visual.interpolation = kwargs['interp'] if 'alpha' in kwargs: self.alphaFilter.alpha = kwargs['alpha'] / 100. if 'order' in kwargs: self.set_order(kwargs['order']) super().update_image(data, **kwargs) def draw(self): if self.is_visible(): self.visual.draw()
class VispyLayer(Layer): def __init__( self, renderer, data, cmap="gray", clim=(0, 1), interp="nearest", alpha=100, order=1, ): super().__init__( renderer, data, cmap=cmap, clim=clim, interp=interp, alpha=alpha, order=order, ) self.visual = ImageVisual(self._data, clim=self._clim, cmap=cmap, interpolation=self._interp) self.alphaFilter = Alpha(self._alpha / 100.0) self.visual.attach(self.alphaFilter) self._rescale() print("Vispy") def set_order(self, order): super().set_order(order) self.visual.transform.translate = (-1, 1, -0.01 * order) def _convert_cmap(self, cmap): if type(cmap) == list: cmap = Colormap(ColorArray(cmap)) return cmap def _rescale(self): height, width = self._data.shape[:2] vscale = -2.0 / height hscale = 2.0 / width zdepth = -0.01 * self._order transform = transforms.STTransform(scale=(hscale, vscale), translate=(-1, 1, zdepth)) self.visual.transform = transform def update_image(self, data, **kwargs): self.visual.set_data(data) if "clim" in kwargs: self.visual.clim = kwargs["clim"] if "cmap" in kwargs: cmap = self._convert_cmap(kwargs["cmap"]) self.visual.cmap = cmap if "interp" in kwargs: self.visual.interpolation = kwargs["interp"] if "alpha" in kwargs: self.alphaFilter.alpha = kwargs["alpha"] / 100.0 if "order" in kwargs: self.set_order(kwargs["order"]) super().update_image(data, **kwargs) def draw(self): if self.is_visible(): self.visual.draw()