我正在使用this question中的代码将一些原始图像转换为png。

import matplotlib.pyplot as plt
import numpy as np

# Parameters.
input_filename = "JPCLN001.IMG"
shape = (2048, 2048) # matrix size
dtype = np.dtype('>u2') # big-endian unsigned integer (16bit)
output_filename = "JPCLN001.PNG"

# Reading.
fid = open(input_filename, 'rb')
data = np.fromfile(fid, dtype)
image = data.reshape(shape)

# Display.
plt.imshow(image, cmap = "gray")
plt.savefig(output_filename)
plt.show()

问题是,我希望png的大小为2048x2048,但我得到的只是500x500以下的图像。关于如何解决这个问题有什么建议吗?

最佳答案

如果只想将数组保存为.png而不打印它,可以使用matplotlib.image.imsave

import numpy as np
from matplotlib import pyplot as plt

# some random data
img = np.random.randint(256, size=(2048, 2048))

# creates a 2048 x 2048 .png image
plt.imsave('img.png', img, cmap='gray')

关于python - 在Python中调整图片大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33588216/

10-09 17:10