【发布时间】:2018-04-16 06:53:21
【问题描述】:
我有一个包含数组列表的单元格,这些数组是三维图像。单元格是 9 个元素(图像)的向量,我想在第 10 个元素中存储一个新图像,其中每个像素对应于所有 9 个元素中相应像素的最大值。
我们举个简单的例子:
I=imread('image.png');
V=zeros(size(I));
cel={I,2*I,V};
如果cel 不是一个单元格而只是一个数组,我会很容易地计算出最大值:
max(cel,[],3);。
所以我的问题是在不使用大量循环的情况下如何在单元格的情况下做同样的事情(也许?)?
编辑!更多说明:
我在cel={I1,I2,I3,I4,I5,i6,i7,I8,i9}; 之类的单元格中有 9 张图像(上面我只声明了一张,然后我创建了第二张 2*I),每张都是 RGB 图像。 I10 图像将形成为 9 个图像中的最大值,类似于:pixel_I10(1,1,1)=max(pixel_I9(1,1,1),pixel_I8(1,1,1)...)
我想取第一张图像的第一个像素和第二张图像的第一个像素..等等,然后它们的最大值将对应于第 10 个图像的第一个像素..
【问题讨论】:
-
你为什么要
imread('image.png')的“最大值”,它混合了不同颜色的强度?另外,如果是“三维图像”,“9 个元素的向量”从哪里来?我想我们通常在 Matlab 中将“向量”称为一维数组,不是吗? -
我的意思是单元格的 9 个元素是图像,我在一个单元格中存储了 9 个图像。我编辑了我的帖子以获取更多信息
-
啊,现在清楚了。我更新了我的答案。虽然瑞恩已经给了你想要的。虽然它看起来像是一个循环,但使用
max进行元素比较应该是有效的。
标签: matlab