[SciPy-user] plt.image: zoom too far?

bryan cole bryan.cole at teraview.co.uk
Wed Aug 7 04:14:57 CDT 2002


This should not be too hard to fix. 

I have implemented image zooming on another wxPython plot widget: The
original is stored as a wxImage. When zooming, I take a sub-image using
the wxImage.GetSubImage() method then rescale the sub-image back up the
the desired size using wxImage.Rescale().

I've attached the python file (wxLabPlot.py) if anyone wants to look.
It's a crude adaption of the wxPlotCanvas that comes with wxPython.
Lines 186->212 deal with the image scaling.

If the plt module is written in Python, I could probably write a patch
but it will take me a week or two to get round to it. 

Bryan

On Tue, 2002-08-06 at 22:56, eric jones wrote:
> Yep, this is a known bug.  The zooming feature relies on wxPython to
> zoom the image, and it looks like wxPython generates the entire image
> when scaling it resulting in a memory explosion.  This needs
> reimplementation to solve the problem for images.  It doesn't affect
> scatter plots -- just images.
> 
> A patch would be very welcomed. :-)
> 
> Eric
> 
> 
> > -----Original Message-----
> > From: scipy-user-admin at scipy.net [mailto:scipy-user-admin at scipy.net]
> On
> > Behalf Of Adam C. Finnefrock
> > Sent: Tuesday, August 06, 2002 4:22 PM
> > To: scipy-user
> > Subject: [SciPy-user] plt.image: zoom too far?
> > 
> > Hi all,
> > 
> > Has anyone had trouble using plt.image and zooming in too far?
> > 
> > The symptoms are either using all available memory (Linux, > 400MB)
> > or showing a blank white window (Linux, Windows).
> > 
> > Example:
> > 
> > >>> import gui_thread
> > >>> <Importing wxPython...  done.>
> > >>> from scipy import *
> > 
> > >>> from scipy import plt
> > >>> img = plt.lena()
> > >>> plt.image(img)
> > 
> > 1.  Use the mouse, zoom in on the eye near the center of the image.
> >     (In linux, python's memory usage peaks and then returns to
> original
> > value.)
> > 2.  Now, zoom in closer using the mouse so that just the iris and
> pupil
> > would
> >     be shown.  (In linux, memory usage rises to > 400MB and this disk
> > starts
> >     swapping.  In Windows, the image is not rendered but instead a
> white
> >     canvas is shown.)
> > 
> > Same results can be obtained on the command-line:
> > >>> z=plt.image(img)
> > >>> z.x_axis.bounds = [245,250]
> > >>> z.y_axis.bounds = [245,250]
> > >>> z.update()
> > 
> > Is this a known bug?  Should I be posting to scipy-devel instead?
> > 
> > 
> > Thanks,
> > Adam
> > _______________________________________________
> > SciPy-user mailing list
> > SciPy-user at scipy.net
> > http://www.scipy.net/mailman/listinfo/scipy-user
> 
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.net
> http://www.scipy.net/mailman/listinfo/scipy-user

-------------- next part --------------
A non-text attachment was scrubbed...
Name: wxLabPlot.py
Type: text/x-python
Size: 44164 bytes
Desc: not available
Url : http://projects.scipy.org/pipermail/scipy-user/attachments/20020807/8bd95a44/attachment.py 


More information about the SciPy-user mailing list