2013-02-21 25 views
8

Tüm bunlara yeni ve görüntünün analizini yapmaya başladım: http://www.pythonvision.org/basic-tutorial Tüm modülleri yükledim ama isabet etmeden çok uzaklaşmadım bir takılma aşağıdaki hata verir pylab.imshow(dna) adımı gerçekleştirmek çalışırken:pylab.imshow() ile bir görüntü gösteriliyor

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 

ben mektuba öğretici tüm talimatları takip ettim ama dışarı çalışamaz yanlış

gidiyor edildi Oldukça belli Teşekkür

+1

budur:

sadece squeeze ne yaptığını görmek için

dna = dna.squeeze() 

veya

imshow(dna.squeeze()) 

kullanılarak ekstra bir boyut kurtulmak gerekir, aşağıdaki örneğe bakın 'dna'? ('' dna '' ve 'dna.shape '' ne verir?' 'TypeError' 'ı yükseltir çünkü' imshow'un nasıl ele alınacağını bilen bir tür ya da şekil değildir. – tacaswell

+0

sadece dna = mahotas.imread ('dna.jpeg') '' türünde (dna) olarak kaydedilen görüntüdür, numpy.ndarray ve 'dna.shape' verir (1024, 1344, 1) –

cevap

23

"o görüntü dna = mahotas.imread ('dna.jpeg) tipidir içinde olarak kaydedilir olan şey (dna) numpy.ndarray verir ve dna.shape verir (1024, 1344, 1)"

Bu, eğer problem Bir 3D ndarray numaralı elden, 3 veya 4 düzleminiz (RGB veya RGBA) elde edeceğinizi umar. (Yığın izinin son karesinde 410 satırındaki kodu okuyun).

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