开发者

Build an array of images in Matlab

I'm doing a Matlab project and I need to know how to build an array of images.

I need to have the ability to move through the array in a similar format as a C ar开发者_开发知识库ray with some kind of index.

I tried it with this:

images = [image1 image2 image3 image4 image5];

but I get this error:

CAT arguments dimensions are not consistent.

I checked the size(image) method for every one of the images and all of them are from the same dimension.

What could be wrong or alternatively how I can do this in other way?

thanks.


There are two ways you can build an array of images:

1. A 3D array

You catenate your images (all should be the same size) along the third dimension like so:

imgArray=cat(3,image1,image2,image3,...)

You can then access each individual image by indexing the third dimension. E.g.

image1=imgArray(:,:,1);

2. A cell array

In this case, you group your images into a cell array, and each image is contained in its own cell.

imgCell={image1,image2,image3,...};

This is a good choice (the only choice) when your images are of different sizes. To access each individual image, you can index the cell as follows:

image1=imgCell{1};


This code:

images = [image1 ... image5];

Is functionally equivalent to these statements:

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

You get the error because there's at least one dimension in your image[1-5] that is not the same. The only dimension that's allowed to be a different size is the first argument to cat (so in this case the 2nd or columns dimension).


Try reshaping (vector1 = reshape(image1, 1, size(image1,1)*size(image1,2))) each image so that you get a vector and then put these vectors into your array like images = [vector1; vector2; vector3; vector4; vector5]

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜