J'ai une image RVB qui a été convertie en un tableau numpy. J'essaie de calculer la valeur RVB moyenne de l'image en utilisant les fonctions numpy ou scipy.
Les valeurs RVB sont représentées sous forme de virgule flottante de 0,0 à 1,0, où 1,0 = 255.
Un exemple d'image_array de 2 x 2 pixels:
[[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]],
[[1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]]
J'ai essayé:
import numpy
numpy.mean(image_array, axis=0)`
Mais cela donne:
[[0.5 0.5 0.5]
[0.5 0.5 0.5]]
Ce que je veux, c'est juste la valeur moyenne RVB unique:
[0.5 0.5 0.5]
Vous prenez la moyenne le long d'un seul axe, alors que vous devez prendre la moyenne le long de deux axes: la hauteur et la largeur de l'image.
Essaye ça:
>>> image_array
array([[[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 1., 1., 1.],
[ 1., 1., 1.]]])
>>> np.mean(image_array, axis=(0, 1))
array([ 0.5, 0.5, 0.5])
Comme vous le dira docs , vous pouvez spécifier un Tuple pour le paramètre axis
, en spécifiant les axes sur lesquels vous voulez que la moyenne soit prise.