from matplotlib.widgets import Lasso
It might not of made the last release.
http://svn.sourceforge.net/viewvc/matplotlib/trunk/matplotlib/lib/matplotlib/widgets.py?revision=2583&view=markup
On 8/7/06, Daniel Kornhauser <[EMAIL PROTECTED]> wrote:
> Hey guys:
>
> Charlie I did not find your lasso example so I cooked up mine, I attach it.
> Can you give me the file name that contains the new Lasso widget for
> "doodling" ?
>
> This is just the start of the lasso or "region of interest" widget I
> still have to :
> - fill the region with a color
> - make it work with layers
> - add methods that return the pixel region or the contour coordinates
> - make a nice class
>
> If anybody has made such a widget I would love to see the code, I hate
> reinventing the wheel.
>
> If there is not such an example such as the lasso tool, can my example
> be added to the examples ?
> What is the process ?
>
> Anyway, I can't believe there is not such a widget, I thought there must
> be some people that use matplotlib for Digital Image Processing ?
> Isn't there ?
>
> Any critique on my code would be appreciated, I have never programed
> with matplotlib ...
>
>
> Daniel.
>
>
>
>
> Charlie Moad wrote:
> > On 8/4/06, Daniel Kornhauser <[EMAIL PROTECTED]> wrote:
> >> Hi:
> >>
> >> Just stared playing with matplotlib, I want to draw a polygon on top of
> >> an image to select a region of interest in the image.
> >> Does anybody have any example or advice on how to interactively draw a
> >> polygon with the mouse by placing it's vertices's one click at a time ?
> >> Another case that I have would be just to fill a region with a thick
> >> line, searched for a "doodle example" or a "paint example" but could not
> >> find them, any advice would be appreciated too.
> >
> > Look in at the widget examples. There is a new Lasso widget for
> > "doodling" and a RectangleSelector.
> >
> > - Charlie
>
>
>
> #!/usr/bin/env python
> """
> This example shows how to use matplotlib to create regions of interest.
> I has two modes:
> - the segment mode, each time you click the mouse you can create a line
> segment
> - the free hand mode, by keeping pressed the right button you can create
> a iregular contour
> The right button closes the loop.
> Daniel Kornhauser
> """
> from pylab import *
>
> class ROI:
>
> def __init__(self, ax, fig):
> self.previous_point = []
> self.start_point = []
> self.end_point = []
> self.line = None
>
> self.fig = fig
> self.fig.canvas.draw()
>
> def motion_notify_callback(self, event):
> if event.inaxes:
> ax = event.inaxes
> x, y = event.xdata, event.ydata
> if event.button == None and self.line != None: # Move line around
> self.line.set_data([self.previous_point[0], x],
> [self.previous_point[1], y])
> self.fig.canvas.draw()
> elif event.button == 1: # Free Hand Drawing
> line = Line2D([self.previous_point[0], x],
> [self.previous_point[1], y])
> ax.add_line(line)
> self.previous_point = [x, y]
> self.fig.canvas.draw()
>
>
> def button_press_callback(self, event):
> if event.inaxes:
> x, y = event.xdata, event.ydata
> ax = event.inaxes
> if event.button == 1: # If you press the right button
> if self.line == None: # if there is no line, create a line
> self.line = Line2D([x, x],
> [y, y],
> marker = 'o')
> self.start_point = [x,y]
> self.previous_point = self.start_point
> ax.add_line(self.line)
> self.fig.canvas.draw()
> # add a segment
> else: # if there is a line, create a segment
> self.line = Line2D([self.previous_point[0], x],
> [self.previous_point[1], y],
> marker = 'o')
> self.previous_point = [x,y]
> event.inaxes.add_line(self.line)
> self.fig.canvas.draw()
>
> elif event.button == 3 and self.line != None: # close the loop
> self.line.set_data([self.previous_point[0],
> self.start_point[0]],
> [self.previous_point[1],
> self.start_point[1]])
> ax.add_line(self.line)
> self.fig.canvas.draw()
> self.line = None
>
> def main():
> fig = figure()
> ax = fig.add_subplot(111)
> ax.set_title(" left click: line segment left pressed: doodle
> right click: close region")
> cursor = ROI(ax, fig)
> fig.canvas.mpl_connect('motion_notify_event',
> cursor.motion_notify_callback)
> fig.canvas.mpl_connect('button_press_event', cursor.button_press_callback)
> show()
>
> if __name__ == "__main__":
> main()
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users