从大小为[365,365,20]的numpy数组A开始,我想将每个切片A [:,:,i]保存为'.bmp'灰度图像。矩阵A存在 int值在0到32之间的元素。必须保证图像之间的灰度值不变。因此,在所有图片中,numpy数组中的每个 int值应该显示为一个特定的灰度值。
我使用imageio尝试了此操作(请参见下面的代码),但是,我发现对于相同的 int值,图像之间的灰度值是不同的。因此,在一张浅灰色图像中可视化的 int值为15,而在另一张深灰色图像中可视化了。
因此,可以使用imagio自己设置灰度值,还是有另一种方法来确保灰度值与切片中的 int值相符?
number_of_slices = A.shape[2]
for count range(number_of_slices):
Slice = A[:,:,count]
Name = "Slices%s"%(count)+".bmp"
imageio.imwrite(Name,Slice)
答案 0 :(得分:1)
这应该有效:
import numpy as np
minimum = data.min()
maximum = data.max()
rescaled = A * 255 / (maximum - minimum)
result = [image for image in np.rollaxis(rescaled, 2)]