如何计算numpy数组中图像的平均颜色?

问题描述:

我有一个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] 

你取均值仅沿一个轴,而你需要采取平均沿两个轴:高度和图像的宽度。

试试这个:

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