ENH: Allow Save buttons to save overlay

Closes Github #264
This commit is contained in:
Tony S Yu
2012-12-15 09:32:26 -05:00
parent ea0821ff93
commit 9bf512da8b
3 changed files with 21 additions and 1 deletions
+5
View File
@@ -165,6 +165,11 @@ class Plugin(QDialog):
# If param is a widget, return its `val` attribute.
return param if not hasattr(param, 'val') else param.val
@property
def filtered_image(self):
"""Return filtered image."""
return self.image_viewer.image
def display_filtered_image(self, image):
"""Display the filtered image on image viewer.
+8
View File
@@ -74,6 +74,14 @@ class OverlayPlugin(Plugin):
self._overlay_plot.set_cmap(self.cmap)
self.image_viewer.redraw()
@property
def filtered_image(self):
"""Return filtered image.
This "filtered image" is used when saving from the plugin.
"""
return self.overlay
def display_filtered_image(self, image):
"""Display filtered image as an overlay on top of image in viewer."""
self.overlay = image
+8 -1
View File
@@ -6,6 +6,9 @@ try:
except ImportError:
print("Could not import PyQt4 -- skimage.viewer not available.")
import numpy as np
import skimage
from skimage import io
from .core import BaseWidget
@@ -84,7 +87,11 @@ class SaveButtons(BaseWidget):
basename, ext = os.path.splitext(filename)
if not ext:
filename = '%s.%s' % (filename, self.default_format)
io.imsave(filename, self.plugin.image_viewer.image)
image = self.plugin.filtered_image
if image.dtype == np.bool:
#TODO: This check/conversion should probably be in `imsave`.
image = skimage.img_as_ubyte(image)
io.imsave(filename, image)
def notify(msg):