Updates to get all tools tested and working

This commit is contained in:
blink1073
2014-09-01 10:04:08 -05:00
committed by Steven Silvester
parent 1775e959d6
commit 778f62de6a
5 changed files with 26 additions and 24 deletions
+4 -1
View File
@@ -46,11 +46,14 @@ class CanvasToolBase(object):
"""
return not self.active
def hit_test(self, event):
return False
def redraw(self):
self.viewer.redraw()
def set_visible(self, val):
for artist in self._artists:
for artist in self.artists:
artist.set_visible(val)
def on_key_press(self, event):
+7 -8
View File
@@ -37,7 +37,8 @@ class LineTool(CanvasToolBase):
def __init__(self, viewer, on_move=None, on_release=None, on_enter=None,
maxdist=10, line_props=None,
**kwargs):
super(LineTool, self).__init__(ax, on_move=on_move, on_enter=on_enter,
super(LineTool, self).__init__(viewer, on_move=on_move,
on_enter=on_enter,
on_release=on_release, **kwargs)
props = dict(color='r', linewidth=1, alpha=0.4, solid_capstyle='butt')
@@ -153,7 +154,7 @@ class ThickLineTool(LineTool):
def __init__(self, viewer, on_move=None, on_enter=None, on_release=None,
on_change=None, maxdist=10, line_props=None):
super(ThickLineTool, self).__init__(ax,
super(ThickLineTool, self).__init__(viewer,
on_move=on_move,
on_enter=on_enter,
on_release=on_release,
@@ -192,16 +193,14 @@ class ThickLineTool(LineTool):
if __name__ == '__main__': # pragma: no cover
import matplotlib.pyplot as plt
from skimage import data
from skimage.viewer import ImageViewer
image = data.camera()
f, ax = plt.subplots()
ax.imshow(image, interpolation='nearest')
viewer = ImageViewer(image)
h, w = image.shape
# line_tool = LineTool(ax)
line_tool = ThickLineTool(ax)
line_tool = ThickLineTool(viewer)
line_tool.end_points = ([w/3, h/2], [2*w/3, h/2])
plt.show()
viewer.show()
+7 -6
View File
@@ -44,7 +44,8 @@ class PaintTool(CanvasToolBase):
def __init__(self, viewer, overlay_shape, radius=5, alpha=0.3,
on_move=None, on_release=None, on_enter=None,
rect_props=None):
super(PaintTool, self).__init__(ax, on_move=on_move, on_enter=on_enter,
super(PaintTool, self).__init__(viewer, on_move=on_move,
on_enter=on_enter,
on_release=on_release)
props = dict(edgecolor='r', facecolor='0.7', alpha=0.5, animated=True)
@@ -65,7 +66,7 @@ class PaintTool(CanvasToolBase):
# Note that the order is important: Redraw cursor *after* overlay
self.artists = [self._overlay_plot, self._cursor]
view.add_tool(self)
viewer.add_tool(self)
@property
def label(self):
@@ -201,10 +202,10 @@ class CenteredWindow(object):
if __name__ == '__main__': # pragma: no cover
np.testing.rundocs()
from skimage import data
from skimage.viewer import ImageViewer
image = data.camera()
f, ax = plt.subplots()
ax.imshow(image, interpolation='nearest')
paint_tool = PaintTool(ax, image.shape)
plt.show()
viewer = ImageViewer(image)
paint_tool = PaintTool(viewer, image.shape)
viewer.show()
+7 -8
View File
@@ -41,7 +41,7 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
def __init__(self, viewer, on_move=None, on_release=None, on_enter=None,
maxdist=10, rect_props=None):
CanvasToolBase.__init__(self, ax, on_move=on_move,
CanvasToolBase.__init__(self, viewer, on_move=on_move,
on_enter=on_enter, on_release=on_release)
props = dict(edgecolor=None, facecolor='r', alpha=0.15)
@@ -67,11 +67,11 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
props = dict(mec=props['edgecolor'])
self._corner_order = ['NW', 'NE', 'SE', 'SW']
xc, yc = self.corners
self._corner_handles = ToolHandles(ax, xc, yc, marker_props=props)
self._corner_handles = ToolHandles(self.ax, xc, yc, marker_props=props)
self._edge_order = ['W', 'N', 'E', 'S']
xe, ye = self.edge_centers
self._edge_handles = ToolHandles(ax, xe, ye, marker='s',
self._edge_handles = ToolHandles(self.ax, xe, ye, marker='s',
marker_props=props)
self.artists = [self._rect,
@@ -202,13 +202,12 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
if __name__ == '__main__': # pragma: no cover
import matplotlib.pyplot as plt
from skimage.viewer import ImageViewer
from skimage import data
f, ax = plt.subplots()
ax.imshow(data.camera(), interpolation='nearest')
viewer = ImageViewer(data.camera())
rect_tool = RectangleTool(ax)
plt.show()
rect_tool = RectangleTool(viewer)
viewer.show()
print("Final selection:")
rect_tool.callback_on_enter(rect_tool.extents)
+1 -1
View File
@@ -371,7 +371,7 @@ class ImageViewer(QtGui.QMainWindow):
self.status_message('')
def add_tool(self, tool):
if self.blit:
if self.useblit:
self._blit_manager.artists.extend(tool.artists)
self._tools.append(tool)
self._event_manager.attach(tool)