【问题标题】:How to calculate mean color of image in numpy array?如何计算numpy数组中图像的平均颜色?
【发布时间】:2017-04-03 16:29:23
【问题描述】:

我有一个已转换为 numpy 数组的 RGB 图像。我正在尝试使用 numpy 或 scipy 函数计算图像的平均 RGB 值。

RGB 值表示为 0.0 - 1.0 的浮点数,其中 1.0 = 255。

2x2 像素图像数组示例:

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

【问题讨论】:

    标签: python numpy image-processing


    【解决方案1】:

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

    试试这个:

    >>> 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 参数指定一个元组,指定您希望取平均值的轴。

    【讨论】:

    • 就是这样!我没有意识到您可以指定多个轴。