如何使用 imread 在 matplotlib 中将 png 读入 n x n 数组,预定义值为 "n"

how to read in png into n x n-array with predefined value of "n" in matplotlib using imread

以下将 png 读入数组:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

img=mpimg.imread('example.png')

结果是数组img,例如一个 1024 x 1024 元组数组(参见 http://matplotlib.org/1.3.1/users/image_tutorial.html):

我如何强制我的结果是一个 n x n 数组(元组)而不是 1024 x 1024 数组(n<1024)?我需要明确定义该数组的维度(例如设置 400x400)。

提前致谢

我建议安装 pillow(最好使用 Anaconda)。它使图像处理变得容易——比将图像视为原始图像更容易 ndarray

安装 pillow 后,此答案应该有所帮助:How do I resize an image using PIL and maintain its aspect ratio?

如果你真的想把它保存为一个数组,那么你可以使用 scipy.misc.imresize.

编辑 添加实际有效的东西,以防其他人错过:

import scipy.misc
img_rescaled = scipy.misc.imresize(img, size=[400,400], interp='bilinear')