def __init__( self, image, *, metadata=None, multichannel=None, colormap='gray', clim=None, clim_range=None, interpolation='nearest', name=None, **kwargs, ): visual = ImageNode(None, method='auto') super().__init__(visual, name) self.events.add(clim=Event, colormap=Event, interpolation=Event) with self.freeze_refresh(): # Set data self._data = image self.metadata = metadata or {} self.multichannel = multichannel # Intitialize image views and thumbnails with zeros if self.multichannel: self._data_view = np.zeros((1, 1) + (self.shape[-1], )) else: self._data_view = np.zeros((1, 1)) self._data_thumbnail = self._data_view # Set clims and colormaps self._colormap_name = '' self._clim_msg = '' if clim_range is None: self._clim_range = calc_data_range(self.data) else: self._clim_range = clim_range if clim is None: self.clim = self._clim_range else: self.clim = clim self.colormap = colormap self.interpolation = interpolation # Set update flags self._need_display_update = False self._need_visual_update = False # Re intitialize indices depending on image dims self._indices = (0, ) * (self.ndim - 2) + ( slice(None, None, None), slice(None, None, None), ) # Trigger generation of view slice and thumbnail self._set_view_slice()
def _on_display_change(self): parent = self.node.parent self.node.parent = None if self.layer.dims.ndisplay == 2: self.node = ImageNode(None, method='auto') else: self.node = VolumeNode(np.zeros((1, 1, 1))) self.node.parent = parent self.reset()
def __init__(self, layer): node = ImageNode(None, method='auto') super().__init__(layer, node) self.layer.events.interpolation.connect( lambda e: self._on_interpolation_change()) self.layer.events.colormap.connect( lambda e: self._on_colormap_change()) self.layer.events.contrast_limits.connect( lambda e: self._on_contrast_limits_change()) self.reset()
def _on_display_change(self, data=None): parent = self.node.parent self.node.parent = None if self.layer.dims.ndisplay == 2: self.node = ImageNode(data, method='auto') else: if data is None: data = np.zeros((1, 1, 1)) self.node = VolumeNode(data, clim=self.layer.contrast_limits) self.node.parent = parent self.reset()
def __init__(self, layer): node = ImageNode(None, method='auto') super().__init__(layer, node) self.layer.events.rendering.connect(self._on_rendering_change) self.layer.events.interpolation.connect(self._on_interpolation_change) self.layer.events.colormap.connect(self._on_colormap_change) self.layer.events.contrast_limits.connect( self._on_contrast_limits_change) self.layer.events.gamma.connect(self._on_gamma_change) self.layer.events.iso_threshold.connect(self._on_threshold_change) self.layer.events.attenuation.connect(self._on_threshold_change) self._on_display_change() self._on_data_change()
def __init__(self, layer): node = ImageNode(None, method='auto') super().__init__(layer, node) self.layer.events.rendering.connect( lambda e: self._on_rendering_change()) self.layer.events.interpolation.connect( lambda e: self._on_interpolation_change()) self.layer.events.colormap.connect( lambda e: self._on_colormap_change()) self.layer.events.contrast_limits.connect( lambda e: self._on_contrast_limits_change()) self.layer.dims.events.ndisplay.connect( lambda e: self._on_display_change()) self.layer.events.gamma.connect(lambda e: self._on_gamma_change()) self._on_display_change()
def __init__( self, labels, *, metadata=None, num_colors=50, seed=0.5, opacity=0.7, name=None, **kwargs, ): visual = ImageNode(None, method='auto') super().__init__(visual, name) self.events.add( colormap=Event, mode=Event, n_dimensional=Event, contiguous=Event, brush_size=Event, selected_label=Event, ) self._data = labels self._data_view = np.zeros((1, 1)) self.metadata = metadata or {} self._seed = seed self._colormap_name = 'random' self._num_colors = num_colors self.colormap = ( self._colormap_name, colormaps.label_colormap(self.num_colors), ) self._node.clim = [0.0, 1.0] self._node.cmap = self.colormap[1] self._node.opacity = opacity self._n_dimensional = True self._contiguous = True self._brush_size = 10 self._last_cursor_coord = None self._selected_label = 0 self._selected_color = None self._mode = Mode.PAN_ZOOM self._mode_history = self._mode self._status = self.mode self._help = 'enter paint or fill mode to edit labels' # update flags self._need_display_update = False self._need_visual_update = False # Re intitialize indices depending on image dims self._indices = (0, ) * (self.ndim - 2) + ( slice(None, None, None), slice(None, None, None), ) # Trigger generation of view slice and thumbnail self._set_view_slice()