2013-02-21 13 views
8

私は比較的新しいので、ここで画像解析に関するチュートリアルを始めました:http://www.pythonvision.org/basic-tutorial 私はすべてのモジュールをインストールしましたが、ひどい それは、次のエラーを返すpylab.imshow(dna)ステップを実行しようとしたとき:pylab.imshow()で画像を表示

In [10]: pylab.imshow(dna) 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-10-fc86cadb4e46> in <module>() 
----> 1 pylab.imshow(dna) 

/usr/lib/pymodules/python2.7/matplotlib/pyplot.pyc in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, hold, **kwargs) 
    2375   ax.hold(hold) 
    2376  try: 
-> 2377   ret = ax.imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs) 
    2378   draw_if_interactive() 
    2379  finally: 

/usr/lib/pymodules/python2.7/matplotlib/axes.pyc in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs) 
    6794      filterrad=filterrad, resample=resample, **kwargs) 
    6795 
-> 6796   im.set_data(X) 
    6797   im.set_alpha(alpha) 
    6798   self._set_artist_props(im) 

/usr/lib/pymodules/python2.7/matplotlib/image.pyc in set_data(self, A) 
    409   if (self._A.ndim not in (2, 3) or 
    410    (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): 
--> 411    raise TypeError("Invalid dimensions for image data") 
    412 
    413   self._imcache =None 

TypeError: Invalid dimensions for image data 

私は手紙にチュートリアルのすべての指示に従っているが、私はうまくいかないことができ、間違った

を行っているたかなり一定おかげ

+1

あるもの:あなたは、次の例を参照してください、squeezeが何をしているかを確認するには

dna = dna.squeeze() 

または

imshow(dna.squeeze()) 

を使用して余分な次元を取り除くために必要

'dna'? ( 'type(dna)'と 'dna.shape'はどういう意味ですか?)これは' imshow'がどう対処するのかを知っている型や形ではないので、 'TypeError'を発生させています。 – tacaswell

+0

'dna = mahotas.imread( 'dna.jpeg')のようにイメージが保存されているだけです。' 'type(dna)'はnumpy.ndarrayを与え、 'dna.shape'は(1024、1344、1) –

答えて

23

は、 "それはイメージが、DNAのように保存されているだけで何= mahotas.imread( 'dna.jpeg')は(DNA)を入力numpy.ndarrayとdna.shape与え与えます(1024、1344、1)"

この問題は、y手を3D ndarrayに置くと、あなたは3つまたは4つのプレーン(RGBまたはRGBA)を持つことになります。 (スタックトレースの最後のフレームの410行目のコードを読んでください)。

a = np.arange(25).reshape(5, 5, 1) 
print a.shape # (5, 5, 1) 
b = a.squeeze() 
print b.shape # (5, 5)