2017-10-01 2 views
-1

J'essaye de créer le heatmap moyen à partir de plusieurs heatmaps.Comment puis-je produire un tableau d'images en tant que moyenne de plusieurs tableaux d'images?

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() 

C'est heatmap1.png:

This is 'heatmap1'

Ceci est le résultat de la moyenne des 3 heatmaps:

enter image description here

On dirait que ce n'est pas la façon de calculer la moyenne des tableaux de couleurs.

Ai-je oublié quelque chose ici?

+1

Quelle est votre sortie attendue? Et vous devriez probablement rendre vos images disponibles pour nous. (Et est-ce vraiment une approche mathématiquement solide?) – sascha

Répondre

1

Vous devez utiliser plt.imshow(f_avg.astype(np.uint8)) afin que imshow puisse détecter qu'il s'agit d'une image et non de données à virgule flottante arbitraire. Je n'ai pas accès à vos trois images, mais si j'essaie d'utiliser f1 trois fois, ou avec des images de bruit aléatoires, cette modification fait que le code se comporte comme je l'aurais souhaité (où il ne se trouve pas sans le changement). Notez également que ces tableaux d'images ont des valeurs RVB et une valeur alpha moyennée - la moyenne de ces trois images ne sera pas nécessairement la même que la carte thermique que vous obtiendriez avec toutes les données incluses (

mais c'est une estimation approximative, si c'est tout ce que vous avez accès).