我有一个已转换为numpy数组的RGB图像。我试图使用numpy或scipy函数计算图像的平均RGB值。
RGB值表示为0.0 - 1.0的浮点,其中1.0 = 255。
样本2x2像素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]
答案 0 :(得分:17)
您只沿一个轴取平均值,而您需要沿两个轴取平均值:图像的高度和宽度。
试试这个:
>>> 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
参数指定一个元组,指定您希望获取均值的轴。