Sam*_*ett 14 analysis image matplotlib
我对这一切都比较新,我开始在这里做图像分析教程:http://www.pythonvision.org/basic-tutorial 
我已经安装了所有的模块,但是在我遇到一个模块之前我没有走得太远障碍.尝试执行该pylab.imshow(dna)步骤时,它返回以下错误:
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
相当肯定我已经遵循了教程中的所有说明,但我无法解决是错误的
谢谢
tac*_*ell 37
"这就是图像保存的内容,如dna = mahotas.imread('dna.jpeg')类型(dna)给出numpy.ndarray和dna.shape给出(1024,1344,1)"
这就是问题所在,如果您提交3D ndarray,它预计您将拥有3或4个平面(RGB或RGBA).(读取堆栈跟踪的最后一帧中第410行的代码).
你只需要摆脱额外的维度
dna = dna.squeeze()
要么
imshow(dna.squeeze())
要查看squeeze正在执行的操作,请参阅以下示例:
a = np.arange(25).reshape(5, 5, 1)
print a.shape # (5, 5, 1)
b = a.squeeze()
print b.shape # (5, 5)