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
> Matplotlib-users@lists.sourceforge.net
> 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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to