gpt4 book ai didi

python - 多幅图像各 channel 的平均值

转载 作者:行者123 更新时间:2023-11-30 22:26:44 26 4
gpt4 key购买 nike

我想通过存储在 numpy 数组中的所有数据集计算每个 RGB channel 的平均值。我知道它是用 np.mean 完成的,并且我知道它的基本用法。

np.mean(arr, axis=(??))

但是由于数组有 4 个维度,我在设置正确的轴时有点迷失。我发现的所有示例都只处理一维或二维数组。

那么函数调用应该如何看起来像有一个数组,例如(1000, 512, 512, 3)?

最佳答案

对于通用 ndarray,您可以创建一个元组来覆盖除与颜色 channel 对应的最后一个轴之外的所有轴,然后将其用于 axis参数为 np.mean ,就像这样 -

np.mean(a, axis=tuple(range(a.ndim-1)))

运行示例以验证循环理解版本 -

In [141]: np.random.seed(0)

In [142]: a = np.random.rand(4,5,6,7,3)

In [143]: [a[...,i].mean() for i in range(a.shape[-1])]
Out[143]: [0.50479333735828591, 0.49485716677174307, 0.51110772176772712]

In [144]: np.mean(a, axis=tuple(range(a.ndim-1)))
Out[144]: array([ 0.50479334, 0.49485717, 0.51110772])

或者,我们可以 reshape 为 2D并找到mean沿第一轴 -

In [145]: a.reshape(-1,a.shape[-1]).mean(0)
Out[145]: array([ 0.50479334, 0.49485717, 0.51110772])

关于python - 多幅图像各 channel 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com