I have checked with all the interpolation modes and the only one that behaves badly is 'nearest'. There are them: http://dl.dropbox.com/u/1351211/Interpolation_modes.zip
On Mon, Apr 18, 2011 at 12:46 PM, Emanuele Passera <emanuele.pass...@treuropa.com> wrote: > Hello everybody, > > I am experiencing a strange behavior with the imshow() function when > using the nearest interpolation method. > > Executing the code listed below, I obtain a good image when using the > bilinear interpolation method > and a totally white image when using the nearest interpolation method. > I have attached the input data buffer and the resulting images too. > > > import numpy as n > import pylab as p > > # input data > dataFile = "/users/lelepass/python/test_imagesc/buffer.float" > samples = 15 > lines = 39 > imagescCanvasXDim = 800 > imagescCanvasDpi = 100 > data_aspect_ratio = 0.75707855955290304 > vMin = -3.3467740682968197 > vMax = 0.65322593170318011 > outImageFileBilinear = > "/users/lelepass/python/test_imagesc/subpxAzBilinear.png" > outImageFileNearest = > "/users/lelepass/python/test_imagesc/subpxAzNearest.png" > > # loading input data file > s = file(dataFile, 'rb').read() > data = n.fromstring(s, 'f') > data.shape = lines, samples > data = n.transpose(data) > > # image canvas dimension setting > xAxisInches = float(imagescCanvasXDim) / float(imagescCanvasDpi) > yPixelsDim = imagescCanvasXDim * data_aspect_ratio > yAxisInches = float(yPixelsDim) / float(imagescCanvasDpi) > > ################################ > # bilinear image # > ################################ > # image canvas > canvasObj = p.figure(facecolor="w", edgecolor="w", figsize=(xAxisInches, > yAxisInches), frameon=True, dpi=imagescCanvasDpi) > # axis setting > axisLocationList = [0,0,1,1] > axisObj = canvasObj.add_axes(axisLocationList) > axisObj.axesPatch.set_alpha(1) > # colormap > colorMap = p.cm.jet_r > # bilinear image drawing > p.imshow(data, cmap=colorMap, vmin=vMin, vmax=vMax, > interpolation="bilinear", origin="lower", aspect="auto", alpha=1) > reversing = axisObj.set_ylim(axisObj.get_ylim()[::-1]) > # bilinear image saving and closing > canvasObj.savefig(outImageFileBilinear, dpi=imagescCanvasDpi) > p.close() > > ################################ > # nearest image # > ################################ > # image canvas > canvasObj = p.figure(facecolor="w", edgecolor="w", figsize=(xAxisInches, > yAxisInches), frameon=True, dpi=imagescCanvasDpi) > # axis setting > axisLocationList = [0,0,1,1] > axisObj = canvasObj.add_axes(axisLocationList) > axisObj.axesPatch.set_alpha(1) > # colormap > colorMap = p.cm.jet_r > # nearest image drawing > p.imshow(data, cmap=colorMap, vmin=vMin, vmax=vMax, interpolation="nearest", > origin="lower", aspect="auto", alpha=1) > reversing = axisObj.set_ylim(axisObj.get_ylim()[::-1]) > # nearest image saving and closing > canvasObj.savefig(outImageFileNearest, dpi=imagescCanvasDpi) > p.close() > > > > I use matplotlib to generate a lot of images in batch mode and this > behavior appear not to be deterministic. It seems to depend on the input > data buffer. > Can anyone help me ? > > I use > Linux openSUSE 11.3 (x86_64) > Linux sat1 2.6.34.7-0.7-default #1 SMP 2010-12-13 11:13:53 +0100 x86_64 > x86_64 x86_64 GNU/Linux > Python 2.6.5 > numpy 1.5.1 > matplotlib 1.0.1 with backend Agg v2.2 > > > If it can be of some help this strange behavior does not appear with a > system > Linux Ubuntu 9.10 > Linux joshua 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 > i686 GNU/Linux > Python 2.6.4 > numpy 1.3.0 > matplotlib 0.99.0 with backend Agg v2.2 > > Executing the script with verbosity I get the subsequent output > python /users/lelepass/python/test_imagesc/test.py --verbose-helpful > > $HOME=/users/lelepass > CONFIGDIR=/users/lelepass/.matplotlib > > Bad key "numerix" on line 30 in > /users/lelepass/.matplotlib/matplotlibrc. > You probably need to get an updated matplotlibrc file from > http://matplotlib.sf.net/_static/matplotlibrc or from the matplotlib source > distribution > matplotlib data path /usr/lib64/python2.6/site-packages/matplotlib/mpl-data > loaded rc file /users/lelepass/.matplotlib/matplotlibrc > matplotlib version 1.0.1 > verbose.level helpful > interactive is False > units is True > platform is linux2 > Using fontManager instance from /users/lelepass/.matplotlib/fontList.cache > backend agg version v2.2 > findfont: Matching > :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium > to Bitstream Vera Sans > (/usr/lib64/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf) > with score of 0.000000 > > > Thank you all. > Bye. > > > > > > Emanuele Passera > > Software Engineer > > Tele-Rilevamento Europa - T.R.E. srl > Via Vittoria Colonna, 7 > 20149 Milano – Italia > Tel.: +39.02.4343.121 - Fax: +39.02.4343.1230 > emanuele.pass...@treuropa.com - www.treuropa.com > > > -- > This communication, that may contain confidential and/or legally privileged > information, is intended solely for the use of the intended addressees. > Opinions, conclusions and other information contained in this message, that > do not relate to the official business of this firm, shall be considered as > not given or endorsed by it. Every opinion or advice contained in this > communication is subject to the terms and conditions provided by the > agreement governing the engagement with such a client. If you have received > this communication in error, please notify us immediately by responding to > this email and then delete it from your system. Any use, disclosure, copying > or distribution of the contents of this communication by a not-intended > recipient or in violation of the purposes of this communication is strictly > prohibited and may be unlawful. > -- > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users