我有两个28x28矩阵,一个填充0.5s,另一个填充-0.5s
show_difference(matrix_filled, matrix_empty)
结果:
另外,为了确保我没有弄乱着色器可以接受的值,我也试过了,
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()
答案 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)