17
4

3 回答 3

43

这就是图像保存为 dna = mahotas.imread('dna.jpeg') type(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)
于 2013-02-21T17:42:26.120 回答
0

v3.3开始,不再引发此错误,因为大小为 MxNx1 的 3d 数组现在被强制转换为 MxN 进行显示。

于 2021-03-24T21:27:05.617 回答
0
import matplotlib.pyplot as plt

plt.imshow(img.reshape(48, 48)) # for example: 48
于 2021-08-23T02:40:51.613 回答