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

Reply via email to