【发布时间】:2017-02-05 08:14:44
【问题描述】:
我一直在努力创建一个图层数组,每个图层都包含一个图像。然后对这一层数组进行中值,得到一张图像。
每个添加的层(来自o[i,j])都是二维的,形状为(460, 640),包含浮点数。
在matlab中你可以轻松做到:
r_n = cell(1, num_filters);
for i = 1:num_filters
layers = o{i,1};
for j = 2:num_faces
layers = cat(3, layers, o{i,j});
end
r_n{i} = median(layers, 3);
end
我是 python 新手,也许我还在用 Matlabish 的方式思考
我试过了:
k=0;
for i in range(0,num_filters):
layers = o[i+k,0]
for j in range(1,num_faces):
layers = np.array([layers,o[i,j]]); ### HERE IS MY PROBLEM
print layers.shape;
r_n[i] = np.median(layers, axis = 0);
k = k + 65;
我的图层数组是错误的......什么是正确的方法?
【问题讨论】:
-
您能否更清楚地解释您的问题。你到底想做什么?什么是“层”?
-
"并且每一层都包含一个图像" - 在 matlab 中,您可以循环并使用 cat 函数,例如 'i=1;' '层 = o{i,1};' '对于 j:n' 'layers = cat(3, layers, o{i,j});' '结束'
-
这是否意味着您有数组 (number_of_layers, height, width, 3),其中 3 对 RGB 值进行编码,并且您想找到平均图像?
标签: python arrays numpy median