gpt4 book ai didi

python - 将原始数据保存为 tif

转载 作者:太空狗 更新时间:2023-10-30 03:03:17 25 4
gpt4 key购买 nike

我需要分析在一个 tif 文件中选作子矩阵的图像的一部分。我想要原始格式的图像,没有多余的装饰(缩放、轴、标签等)...我该怎么做?

这是我现在使用的代码:

 submatrix = im[x_min:x_max, y_min:y_max]
plt.imshow(submatrix)
plt.savefig("subplot_%03i_%03i.tif" % (index, peak_number), format = "tif")

最佳答案

首先,如果您只想存储原始值或原始值的灰度表示,最简单的方法是使用 PIL。

例如,这将生成一个 10x10 灰度 tif 文件:

import numpy as np
import Image

data = np.random.randint(0, 255, (10,10)).astype(np.uint8)
im = Image.fromarray(data)
im.save('test.tif')

至于你为什么 matplotlib 版本有更多像素的问题,那是因为你暗中告诉它。 Matplotlib 图形有大小(以英寸为单位)和 dpi(默认情况下,屏幕上为 80,保存时为 100)。此外,默认情况下 imshow 将对数组中的值进行插值,即使您将插值设置为最接近,保存的图像仍将是您为图形指定的大小。

如果您想使用 matplotlib 以一个值对一个像素的形式保存图形(例如,以便轻松使用颜色图),请执行类似以下操作:

import numpy as np
import matplotlib.pyplot as plt

dpi = 80 # Arbitrary. The number of pixels in the image will always be identical
data = np.random.random((10, 10))

height, width = np.array(data.shape, dtype=float) / dpi

fig = plt.figure(figsize=(width, height), dpi=dpi)
ax = fig.add_axes([0, 0, 1, 1])
ax.axis('off')

ax.imshow(data, interpolation='none')
fig.savefig('test.tif', dpi=dpi)

关于python - 将原始数据保存为 tif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19673619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com