Как загрузить и сохранить стопку изображений в MATLAB - PullRequest
2 голосов
/ 18 октября 2011

Я пытаюсь сделать свой первый проект в MATLAB, и пока я пытаюсь загрузить последовательность изображений из каталога и сохранить их в одном объекте .

Изображения маленькие и их довольно мало <100, поэтому память не проблема. </p>

Я бы оптимально сохранил их в 3-мерном массиве , но я не знаю, как это сделать.

Можете ли вы сказать мне, как загружать изображения и хранить их все в стеке?

Пока вот код, который я написал:

function image = load_image_array(dir, start, finish)
    for i = start:finish

        filename = [ dir '/' sprintf('%08d', i) '.jpg' ];
        image = importdata( filename, 'jpg' );

        figure( i );
        imagesc( image );

    end
end

Как вы думаете, это хорошая идея предварительно выделить массив заранее? Кроме того, является ли трехмерный массив хорошей идеей? Я хотел бы иметь изображения RGB, мне нужно иметь 3 стека или 4-мерный массив для этого?

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Предполагая, что они все одного размера, хранить их в стеке так же просто, как:

...
imageStack(i,:,:) = image;
...
imagesc( squeeze(imageStack(i,:,:)) );

Если они не одного размера, просто используйте массив ячеек :

...
imageStack{i} = image;
...
imagesc( imageStack{i} );

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

0 голосов
/ 29 октября 2011

вы можете посмотреть эту ссылку.Делает это очень просто!

http://blogs.mathworks.com/steve/2006/06/06/batch-processing/

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