Numpy三维阵列的平均值



我是python/numpy预编程的新手。我有一个表示图像(x和y轴(的三维阵列,图像的每个点都与具有其rgb值的像素相关联:例如:a=np数组([[0,2,2],[1,3,2]],[[1,4,5],[6,5,3]]](我想计算图像上R、G和B颜色通道的平均值。例如(0+1+1+6(/4、(2+3+4+5(/4和(2+2+5+3(/4。我必须使用函数numpy.mean。我已经通过切片测试了一些东西,但我觉得这不是正确的做法:(patch==image(在此处输入图像描述谢谢你的帮助!

让我们考虑这个数组rgb

array([[[1, 1, 1],
[1, 2, 3],
[4, 5, 6]],
[[1, 2, 3],
[0, 0, 0],
[1, 0, 0]]])

然后我们可以通过获得每个通道的平均值

import numpy as np
rgb = np.array([[[1,1,1],[1,2,3],[4,5,6]],[1,2,3],[0,0,0],[1,0,0]]])
print(rgb.shape)
rgb_mean = np.mean(np.mean(rgb, axis=1), axis=0)
print(rgb_mean)
rgb_mean = rgb_mean.astype(np.uint8)
print(rgb_mean.shape)
print(rgb_mean)

输出

(2, 3, 3)
array([1.33333333, 1.66666667, 2.16666667])
(3,)
array([1, 1, 2], dtype=uint8)

最新更新