diff --git a/skimage/viewer/canvastools/painttool.py b/skimage/viewer/canvastools/painttool.py index 7e7dd33a..cc5f9705 100644 --- a/skimage/viewer/canvastools/painttool.py +++ b/skimage/viewer/canvastools/painttool.py @@ -50,8 +50,7 @@ class PaintTool(CanvasToolBase): self.alpha = alpha self.cmap = LABELS_CMAP self._overlay_plot = None - self._shape = overlay_shape - self.overlay = np.zeros(overlay_shape, dtype='uint8') + self.shape = overlay_shape self._cursor = plt.Rectangle((0, 0), 0, 0, **props) self._cursor.set_visible(False) @@ -109,6 +108,19 @@ class PaintTool(CanvasToolBase): self._overlay_plot.set_data(image) self.redraw() + @property + def shape(self): + return self._shape + + @shape.setter + def shape(self, shape): + self._shape = shape + if not self._overlay_plot is None: + self._overlay_plot.set_extent((-0.5, shape[1] + 0.5, + shape[0] + 0.5, -0.5)) + self.radius = self._radius + self.overlay = np.zeros(shape, dtype='uint8') + def _on_key_press(self, event): if event.key == 'enter': self.callback_on_enter(self.geometry) diff --git a/skimage/viewer/plugins/labelplugin.py b/skimage/viewer/plugins/labelplugin.py index b3c289f1..06ba2dd9 100644 --- a/skimage/viewer/plugins/labelplugin.py +++ b/skimage/viewer/plugins/labelplugin.py @@ -43,6 +43,10 @@ class LabelPainter(Plugin): self.paint_tool.label = self._label_widget.index = 1 self.artists.append(self.paint_tool) + def _on_new_image(self, image): + """Update plugin for new images.""" + self.paint_tool.shape = image.shape + def on_enter(self, overlay): pass