Создайте массив изображений в Matlab - PullRequest
10 голосов
/ 27 июня 2011

Я делаю проект Matlab, и мне нужно знать, как создать массив изображений.
Мне нужно иметь возможность перемещаться по массиву в том же формате, что и массив C, с каким-то индексом.

Я пробовал это с этим:

images = [image1 image2 image3 image4 image5];

, но я получаю эту ошибку:

Размеры аргументов CAT не согласованы.

Я проверил метод size(image) для каждого из изображений, и все они из одного измерения.

Что может быть не так или как я могу это сделать другим способом?

спасибо.

Ответы [ 3 ]

23 голосов
/ 27 июня 2011

Существует два способа создать массив изображений:

1. 3D массив

Вы добавляете свои изображения (все должны быть одинакового размера) вдоль третьего измерения следующим образом:

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

Затем вы можете получить доступ к каждому отдельному изображению, проиндексировав третье измерение. Э.Г.

image1=imgArray(:,:,1);

2. Массив ячеек

В этом случае вы группируете свои изображения в массив ячеек, и каждое изображение содержится в отдельной ячейке.

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

Это хороший выбор (единственный выбор), когда ваши изображения имеют разные размеры. Чтобы получить доступ к каждому отдельному изображению, вы можете проиндексировать ячейку следующим образом:

image1=imgCell{1};
4 голосов
/ 27 июня 2011

Этот код:

images = [image1 ... image5];

Функционально эквивалентен следующим утверждениям:

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

Вы получаете ошибку, потому что в вашем изображении есть хотя бы одно измерение [1-5], котороене такой же.Единственный размер, которому разрешено быть другого размера, - это первый аргумент cat (так что в данном случае это 2-й размер или размерность столбцов).

2 голосов
/ 27 июня 2011

Попробуйте изменить (vector1 = reshape(image1, 1, size(image1,1)*size(image1,2))) каждое изображение, чтобы получить вектор, а затем поместить эти векторы в ваш массив, например images = [vector1; vector2; vector3; vector4; vector5]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...