From d77aa6034edaf6c3f8feb1beebd3b2431c5d3d69 Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Wed, 26 Dec 2012 22:10:27 -0800 Subject: [PATCH] ENH: Add demo of LabelPlugin --- viewer_examples/plugins/watershed_demo.py | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 viewer_examples/plugins/watershed_demo.py diff --git a/viewer_examples/plugins/watershed_demo.py b/viewer_examples/plugins/watershed_demo.py new file mode 100644 index 00000000..7119b7f2 --- /dev/null +++ b/viewer_examples/plugins/watershed_demo.py @@ -0,0 +1,31 @@ +import matplotlib.pyplot as plt + +from skimage import data +from skimage import filter +from skimage import morphology +from skimage.viewer import ImageViewer +from skimage.viewer.plugins.labelplugin import LabelPainter + + +class WatershedPlugin(LabelPainter): + + def help(self): + helpstr = ("Watershed plugin", + "----------------", + "Use mouse to paint each region with a different label.", + "Press enter to display segmented image.") + return '\n'.join(helpstr) + + def on_enter(self, overlay): + viewer = self.image_viewer + edge_image = filter.sobel(viewer.image) + labels = morphology.watershed(edge_image, overlay) + viewer.ax.imshow(labels, cmap=plt.cm.jet, alpha=0.5) + viewer.redraw() + self.close() + + +image = data.coins() +viewer = ImageViewer(image) +viewer += WatershedPlugin() +viewer.show()