Python imshow:完全填充和完全空白的图像,没有任何差异

时间:2017-06-17 15:48:40

标签: python image-processing matplotlib jupyter-notebook

我有两个28x28矩阵,一个填充0.5s,另一个填充-0.5s

show_difference(matrix_filled, matrix_empty)

结果:

enter image description here

另外,为了确保我没有弄乱着色器可以接受的值,我也试过了,

show_difference(matrix_filled*0, matrix_filled*2)
# numpy arrays

但是我仍然得到相同的结果!为什么?

这是我用来并排显示它们的功能:

def show_difference(image_a, image_b):
    plt.subplot(1,2,1)
    plt.imshow(image_a, interpolation='none')

    plt.subplot(1,2,2)
    plt.imshow(image_b, interpolation='none')

    plt.show()

1 个答案:

答案 0 :(得分:2)

每个imshow图都根据其最小值和最大值单独标准化。由于常量数组的最小值和最大值相同,因此所有像素将具有色彩映射中最低的颜色。因此两个图看起来都一样。

要定义规范化,您可以使用vmin的{​​{1}} vmax个参数,例如

imshow

或使用规范化实例,例如

plt.imshow(array, vmin=0, vmax=2)

因此,在您的情况下,您可能首先找出两个数组的最小值和最大值,并将这些值用于图像图

norm=plt.Normalize(vmin=0, vmax=2)
plt.imshow(array, norm=norm)