给定一个2D numpy实数数组,如何生成描绘每个数字强度的图像?

ksm*_*001 6 python arrays numpy image

我有一个2D numpy数组,并希望生成一个图像,使得对应于具有高值(相对于其他像素)的数字的像素用更强烈的颜色着色.例如,如果图像是灰度级的,并且像素具有值0.4849而所有其他像素对应于低于0.001的值,则该像素可能被着色为黑色,或者接近黑色.

这是一个示例图像,数组为28x28,包含0到1之间的值.

我绘制此图像的所有操作都运行以下代码:

import matplotlib.pyplot as plt
im = plt.imshow(myArray, cmap='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,出于某种原因,这仅在值介于0和1之间时才有效.如果它们处于可能包含负数的某个其他比例上,则图像没有多大意义.

Tar*_*ula 3

您也可以使用不同的颜色图,如下例所示(请注意,我删除了插值):

happy_array = np.random.randn(28, 28)
im = plt.imshow(happy_array, cmap='seismic', interpolation='none')
cbar = plt.colorbar(im)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

甚至灰色也可以工作:

happy_array = np.random.randn(28, 28)
im = plt.imshow(happy_array, cmap='gray', interpolation='none')
cbar = plt.colorbar(im)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述