SourceForge logo
SourceForge logo
Menu

matplotlib-users

From: Massimo Di S. <mas...@ya...> - 2010年02月28日 05:05:30
Hi All,
i've data store in a multydimension numpy.array,
it is composed by 3 MxN normalized (0 - 1) array 
but tring to display it using "imshow" i get an error,
" TypeError: Invalid dimensions for image data "
please can you help me to fix this problem ?
my data is : 
In [119]: dd[0]
Out[119]: 
array([[[ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 ..., 
 [ 0.22834646, 0.39370079, 0.38976378, ..., 0.2519685 ,
 0.25590551, 0.38582677],
 [ 0.30708661, 0.25984252, 0.30314961, ..., 0.2480315 ,
 0.25984252, 0.37401575],
 [ 0.58661417, 0.62598425, 0.5984252 , ..., 0.2480315 ,
 0.2519685 , 0.32283465]],
 [[ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 ..., 
 [ 0.17322835, 0.37401575, 0.4015748 , ..., 0.27952756,
 0.27559055, 0.42519685],
 [ 0.30314961, 0.24409449, 0.30314961, ..., 0.26771654,
 0.27165354, 0.38976378],
 [ 0.57086614, 0.61811024, 0.5984252 , ..., 0.28346457,
 0.26771654, 0.34251969]],
 [[ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 [ 1. , 1. , 1. , ..., 1. ,
 1. , 1. ],
 ..., 
 [ 0.19685039, 0.34251969, 0.37795276, ..., 0.2519685 ,
 0.25984252, 0.34251969],
 [ 0.27165354, 0.21653543, 0.27559055, ..., 0.2519685 ,
 0.26377953, 0.30708661],
 [ 0.57480315, 0.63385827, 0.58661417, ..., 0.26377953,
 0.25590551, 0.29527559]]])
In [120]: len(dd[0])
Out[120]: 3
In [121]: dd[0].shape
Out[121]: (3, 2058, 2607)
In [122]: matplotlib.pyplot.imshow(dd[0])
------------------------------------------------------------
Traceback (most recent call last):
 File "<ipython console>", line 1, in <module>
 File "/Library/Python/2.6/site-packages/matplotlib/pyplot.py", line 2035, in imshow
 ret = ax.imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs)
 File "/Library/Python/2.6/site-packages/matplotlib/axes.py", line 6272, in imshow
 im.set_data(X)
 File "/Library/Python/2.6/site-packages/matplotlib/image.py", line 372, in set_data
 raise TypeError("Invalid dimensions for image data")
TypeError: Invalid dimensions for image data
thanks for any help!!!
Massimo.
From: Ryan M. <rm...@gm...> - 2010年02月28日 05:30:55
On Sat, Feb 27, 2010 at 11:04 PM, Massimo Di Stefano
<mas...@ya...> wrote:
> Hi All,
>
> i've data store in a multydimension numpy.array,
> it is composed by 3 MxN normalized (0 - 1) array
> but tring to display it using "imshow" i get an error,
> " TypeError: Invalid dimensions for image data "
> please can you help me to fix this problem ?
> my data is :
> In [120]: len(dd[0])
> Out[120]: 3
>
> In [121]: dd[0].shape
> Out[121]: (3, 2058, 2607)
>
> In [122]: matplotlib.pyplot.imshow(dd[0])
> ------------------------------------------------------------
> Traceback (most recent call last):
> File "<ipython console>", line 1, in <module>
> File "/Library/Python/2.6/site-packages/matplotlib/pyplot.py", line 2035,
> in imshow
> ret = ax.imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax,
> origin, extent, shape, filternorm, filterrad, imlim, resample, url,
> **kwargs)
> File "/Library/Python/2.6/site-packages/matplotlib/axes.py", line 6272, in
> imshow
> im.set_data(X)
> File "/Library/Python/2.6/site-packages/matplotlib/image.py", line 372, in
> set_data
> raise TypeError("Invalid dimensions for image data")
> TypeError: Invalid dimensions for image data
Your image data is 3xMxN, but according to the imshow docstring:
" MxNx3 -- RGB (float or uint8 array)"
So a quick way is to use the transpose do:
matplotlib.pyplot.imshow(dd[0].transpose())
However, this will rotate the image (result will have N rows and M
columns), if you're expecting it to have M rows and N columns. In that
case, you need to "roll" the axis to the end, which will end up with a
3xMxN array:
>>>dd[0].shape
(3, 2058, 2607)
>>>data2 = np.rollaxis(dd[0], 0, 3)
>>>data2.shape
(2058, 2607, 3)
plt.imshow(data2)
Ryan
-- 
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /