2016-11-20 172 views
5

我有一個RGB圖像已被轉換爲numpy數組。我試圖用numpy或scipy函數來計算圖像的平均RGB值。如何計算numpy數組中圖像的平均顏色?

的RGB值被表示爲從0.0浮點 - 1.0,其中1.0 = 255。

樣品2×2像素image_array:

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

我曾嘗試:

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

但輸出:

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

我要的只是單一的RGB平均值:

[0.5 0.5 0.5] 

回答

11

你取均值僅沿一個軸,而你需要採取平均沿兩個軸:高度和圖像的寬度。

試試這個:

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

由於docs會告訴你,你可以爲axis參數指定一個元組,指定了要採取的平均軸。

+1

那就是它!我沒有意識到你可以指定多個軸。 – dranobob