首先如果给出的二维矩阵是ndarray类型,那么可以直接matplotlib.pyplot.imshow()将矩阵进行图像化的处理,但如果矩阵不是ndarray类型,我们需要先将矩阵通过np.array()转换为numpy的ndarray类型。
关于图像的尺寸调整,很多时候我们需要调整图像的尺寸以适应网络模型对输入的维度要求,这里介绍 resize 和 ImageOps,其中 resize 有时候会出现 “ValueError: unknown resampling filter” 的error,这是因为传递给resize模块的图像对象不支持指定的插值方法,而ImageOps可以根据指定尺寸自动对图像进行缩放,避免上述error且能输出任意尺寸。
import numpy as np
from PIL import Image,ImageOps
#加载数据并将其转换为图像
x = np.load('D:\\practice\\DCGAN\\normal_imgs\\arr_0.npy')
x = (x-np.min(x))*255/np.max(x)
im = Image.fromarray(np.uint8(x)) ##Image.formarray(np.unit8())是将二维数据编码为图像
#x = im.point(lambda i:i*1.2)
im.show()
im.save('1.jpg')
#修改图像尺寸至256*128
#width=500
#height=int((width/float(im.size[0]))*float(im.size[1]))
resized_im=ImageOps.fit(im,(256,128),Image.Resampling.LANCZOS)#这里的Image.Resampling.LANCZOS指的是高质量插值方法
resized_im.show()
resized_im.save('2.jpg')
img.resize()函数的作用和用法-单张图像变换大小-CSDN博客
Flask PIL:ValueError: unknown resampling filter,如何调整在Flask上上传的图像大小|极客笔记 (deepinout.com)