2016-11-20 13 views
5

Mam obraz RGB, który został przekonwertowany na tablicę numpy. Próbuję obliczyć średnią wartość RGB obrazu za pomocą funkcji numpy lub scipy.Jak obliczyć średni kolor obrazu w tablicy numpy?

wartości RGB są reprezentowane jako zmiennym od 0,0 - 1,0, gdzie 1,0 = 255.

image_array przykład 2x2 pikseli:

[[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], 
[[1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]] 

próbowałem:

import numpy 
numpy.mean(image_array, axis=0)` 

Ale to wyjście:

[[0.5 0.5 0.5] 
[0.5 0.5 0.5]] 

Co chcę tylko pojedynczy RGB średnia wartość:

[0.5 0.5 0.5] 

Odpowiedz

11

Bierzesz średnią wzdłuż tylko jednej osi, przy czym trzeba wziąć średnią wzdłuż dwóch osi: wysokość i szerokość obrazu .

Spróbuj tego:

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

Jako docs powie, można określić krotki parametru axis, określając osie na których chcesz średnie mają zostać podjęte.

+1

To wszystko! Nie wiedziałem, że możesz podać więcej niż jedną oś. – dranobob