From: Tom D. <tdi...@ph...> - 2011-08-17 19:18:26
|
Here is how am solving this problem. It isn't terribly fast either, but it works for me. I wrote something with pygame that was faster, but it had its own set of problems. Tom --- import numpy as np import pylab class plotter: def __init__(self, im, i=0): self.im = im self.i = i self.vmin = im.min() self.vmax = im.max() self.fig = pylab.figure() pylab.gray() self.ax = self.fig.add_subplot(111) self.draw() self.fig.canvas.mpl_connect('key_press_event',self.key) def draw(self): if self.im.ndim is 2: im = self.im if self.im.ndim is 3: im = self.im[...,self.i] self.ax.set_title('image {0}'.format(self.i)) pylab.show() self.ax.imshow(im, vmin=self.vmin, vmax=self.vmax, interpolation=None) def key(self, event): old_i = self.i if event.key=='right': self.i = min(self.im.shape[2]-1, self.i+1) elif event.key == 'left': self.i = max(0, self.i-1) if old_i != self.i or old_j != self.j: self.draw() self.fig.canvas.draw() def show(im, i=0): plotter(im, i) On 08/17/2011 01:26 PM, Keith Hughitt wrote: > I'm also looking into a similar issue, and would be interested to see > what approaches others have taken. > > Has anyone found a good framework-independent solution? > > Keith > > On Wed, Aug 10, 2011 at 5:15 PM, David Just <Jus...@ma... > <mailto:Jus...@ma...>> wrote: > > I have an array of images stored as an array of numpy arrays. I > need to be able to efficiently scroll through that set of images. > My first attempt at doing this goes something like this: > > --init-- > > self.ax <http://self.ax> = pyplot.imshow(imgdta[0], > interpolation='spline36', cmap=cm.gray, picker=True) # draw the > plot @UndefinedVariable > pyplot.axes().set_axis_off() > self.fig = self.ax.get_figure() > self.canvas = FigureCanvasGTKAgg(self.fig) > > --onscroll-- > self.ax.set_array(imdta[n]) # 0 < n < num_images > self.canvas.draw() > > > This method of changing the image data does not seem to be very > preferment. It takes ~.25 seconds to go from one image to the next. > Can anybody suggest a faster way? This also ends up in a canvas > that’s much larger than I need, is there a better way to define my > view area? > > > Thank you, > Dave. > > ------------------------------------------------------------------------------ > uberSVN's rich system and user administration capabilities and model > configuration take the hassle out of deploying and managing > Subversion and > the tools developers use with it. Learn more about uberSVN and get a > free > download at: http://p.sf.net/sfu/wandisco-dev2dev > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > <mailto:Mat...@li...> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > > > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |