我正在尝试从多个热图创建平均热图。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from scipy import misc
f1 = misc.imread('heatmap1.png')
f2 = misc.imread('heatmap2.png')
f3 = misc.imread('heatmap3.png')
f_avg=np.average([f1,f2,f3],axis=0)
plt.imshow(f_avg)
plt.show()
这是heatmap1.png:
这是平均3个热图的结果:
看起来这不是计算平均色彩数组的方法。
我在这里错过了什么吗?
答案 0 :(得分:2)
您应该使用plt.imshow(f_avg.astype(np.uint8))
,以便imshow
可以检测到这是一个图像而不是任意浮点数据。我无法访问您的所有三个图像,但如果我使用f1
三次或使用随机噪声图像进行测试,则此更改会使代码的行为与我期望的一样(如果没有变化)。
还要注意这些图像阵列具有RGB值和α值均得到平均值 - 这三个图像的平均值不一定与包含所有数据的热图相同(但是这是一个很好的粗略估计,如果你有权访问的话。)