【发布时间】:2014-01-23 13:12:40
【问题描述】:
我有一个保存为 numpy 数组的大型二维数组 (4000x3000),我想显示和保存它,同时保持查看每个单独像素的能力。 对于显示部分,我目前使用 matplotlib 的 imshow() 函数,效果很好。
对于保存部分,我不清楚如何保存这个数字并保留所有 12M 像素中包含的信息。我尝试调整已保存图像的图形大小和分辨率 (dpi),但不清楚应该使用哪个 figsize/dpi 设置来匹配显示的大型 2D 矩阵的分辨率。这是我正在做的示例代码(arr 是一个形状为 (3000,4000) 的 numpy 数组):
fig = pylab.figure(figsize=(16,12))
pylab.imshow(arr,interpolation='nearest')
fig.savefig("image.png",dpi=500)
一种选择是大幅提高保存图像的分辨率,以确保正确记录所有像素,但这具有创建尺寸非常大的图像(至少比 4000x3000 像素图像大得多)的显着缺点是我真正需要的一切)。它还有一个缺点,即并非所有像素都具有完全相同的大小。
我还查看了 Python 图像库,但我不清楚它如何用于此目的,如果有的话。
非常感谢您对此主题的任何帮助!
【问题讨论】:
-
您需要保存图像,还是可以只保存数组数据本身并稍后重新创建图像?
-
我需要保存图像并且图像中的所有像素信息都清晰可见
标签: python image matplotlib resolution large-data