Arrays 在Matlab中构建图像数组

Arrays 在Matlab中构建图像数组,arrays,image,matlab,Arrays,Image,Matlab,我正在做一个Matlab项目,我需要知道如何构建图像数组。 我需要能够以类似于带有某种索引的C数组的格式在数组中移动 我试过这个: images = [image1 image2 image3 image4 image5]; 但我得到了这个错误: CAT参数维度不一致 我检查了每个图像的size(image)方法,它们都来自同一维度 可能有什么问题,或者我如何以其他方式做到这一点 谢谢。此代码: images = [image1 ... image5]; 在功能上等同于以下陈述: image

我正在做一个Matlab项目,我需要知道如何构建图像数组。
我需要能够以类似于带有某种索引的C数组的格式在数组中移动

我试过这个:

images = [image1 image2 image3 image4 image5];
但我得到了这个错误:

CAT参数维度不一致

我检查了每个图像的
size(image)
方法,它们都来自同一维度

可能有什么问题,或者我如何以其他方式做到这一点

谢谢。

此代码:

images = [image1 ... image5];
在功能上等同于以下陈述:

images = horzcat(image1, ..., image5);
images = cat(2, image1, ..., image5);

您得到错误是因为图像[1-5]中至少有一个维度不相同。唯一允许大小不同的维度是cat的第一个参数(因此在本例中是第二个或第二个列维度)。

尝试对每个图像进行整形(
vector1=restrape(image1,1,size(image1,1)*size(image1,2))
)以获得一个向量,然后将这些向量像
images=[vector1;vector2;vector3;vector4;vector5]

有两种方法可以构建图像阵列:

1.3D阵列 您将图像(所有图像的大小应相同)沿三维进行连接,如下所示:

imgArray=cat(3,image1,image2,image3,...)
然后,您可以通过索引第三维来访问每个单独的图像

image1=imgArray(:,:,1);
2.单元阵列 在本例中,将图像分组到一个单元格数组中,每个图像都包含在自己的单元格中

imgCell={image1,image2,image3,...};
当图像大小不同时,这是一个很好的选择(唯一的选择)。要访问每个单独的图像,您可以按如下方式索引单元格:

image1=imgCell{1};

就像我在上面写的。我检查了每个图像的大小(图像)方法,它们都有不同的大小但尺寸相同。所以我不认为是这样。@Michael:听起来你是说尺寸的数量相同,但尺寸不同。所以为了澄清一下,大小(图像)的结果除了第二个维度外,每个维度都完全相同?编辑:也许发布尺寸命令的结果谢谢你的帮助,但尤达的答案正是我所需要的。再次感谢。如果第三个维度的图像是rgb通道,是否可以使用3D阵列的可能副本?(行、列、香奈儿)