web-dev-qa-db-fra.com

Comment calculer la couleur moyenne de l'image dans un tableau numpy?

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]
12
dranobob

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.

20
Praveen