改变 matplotlib 图像的维度
Changing dimensionality for matplotlib image
我正在使用 scipy.misc.imread
加载图像,对于我的 keras 模型,我必须将形状从 (3, 224, 224)
更改为 (224, 224, 3)
。我一直在使用 numpy.reshape
来完成这个,但我不确定它是否真的有效。
所以我尝试绘制生成的图像,但 matplotlib.pyplot.imshow
不适用于新形状。
有什么方法可以绘制生成的图像吗?
整形很危险,因为它会混合图像的通道。
相反,您需要将第一个轴向后滚动,而其他两个保持原样。假设im
是你的shape (3, 224, 224)的图像,那么滚动可以通过numpy.rollaxis
来完成
new_im = numpy.rollaxis(im,0, start=3)
这样 new_im.shape
就是 (224, 224, 3)
。该数组应该可以使用 matplotlib.pyplot.imshow()
绘制
假设您的图像是 im
。使用以下代码:
im = im.transpose((1, 2, 0))
matplotlib.pyplot.imshow(im)
我正在使用 scipy.misc.imread
加载图像,对于我的 keras 模型,我必须将形状从 (3, 224, 224)
更改为 (224, 224, 3)
。我一直在使用 numpy.reshape
来完成这个,但我不确定它是否真的有效。
所以我尝试绘制生成的图像,但 matplotlib.pyplot.imshow
不适用于新形状。
有什么方法可以绘制生成的图像吗?
整形很危险,因为它会混合图像的通道。
相反,您需要将第一个轴向后滚动,而其他两个保持原样。假设im
是你的shape (3, 224, 224)的图像,那么滚动可以通过numpy.rollaxis
new_im = numpy.rollaxis(im,0, start=3)
这样 new_im.shape
就是 (224, 224, 3)
。该数组应该可以使用 matplotlib.pyplot.imshow()
假设您的图像是 im
。使用以下代码:
im = im.transpose((1, 2, 0))
matplotlib.pyplot.imshow(im)