2017-04-18 90 views
0

我有一个阵列img与形状是64x128x512x3从三个图像64x128x512 concatenated。我想分别计算每个图像的均值,由数组img给出。因此,我执行的代码为波纹管:如何分别计算4D阵列的平均值?

import numpy as np 
img_means = np.mean(img, (0, 1, 2))) 

它是正确的吗?我的预期成绩是img_means[0,:,:,:]是第一张图片的均值,img_means[1,:,:,:]是第二张图片的均值,第三张图片的是img_means[2,:,:,:]

+1

此代码计算'img_means [i] = img [:,:,:,i] .mean()' – Eric

回答

1

是的,它是正确的,但请注意,img_means只是一个由三个数字组成的数组(每一个都是相应数字的平均值)。

0

你的代码是不是在Python 3.x的工作 像这样做:首先 生成数据

import numpy as np 
img=np.arange(64*128*512*3).reshape(64,128,512,3) 

这是你想要什么:

img_means=[img[:,:,:,i].mean() for i in range(img.shape[3]) ] 
+0

对我来说,它工作在python 3(python 3.5.2)上。具体用以下代码:img = np.random.randint(5,size =(64,128,512,3)) b = np.mean(img,(0,1,2)) –