2011-11-28 74 views
0

我從一個目錄中逐一讀取圖像,我希望創建一個圖像數組並傳遞給處理這些圖像的mexFunction。到目前爲止我所嘗試的是不起作用的。讓說我有100張圖片256×256,當我做如何在matlab中創建一個圖像陣列

directory = uigetdir; fileList = dir(directory); imageVolume= []; 

for idx = 3:numel(fileList) 

    tempImage = imread(fullfile(directory, fileList(idx).name)); 
    imageVolume= [imageVolume tempImage]; 
end 

每當我這樣做,我不明白的256x256xn一個數組,而不是我只是得到256X(256 * N)的圖像,這是不是有什麼我想要。任何想法?

回答

1

使用單元格陣列作爲@bjornsen建議的作品。如果你寧願不使用電池陣列,可以使用3個維矩陣:

imageVolume(:,:,idx) = tempImage; 

您必須確保,雖然,所有圖像大小相同。否則,你最好使用單元陣列。

+0

正是我在找的東西,謝謝。 – DogDog

+0

是的,但第三維是圖像RGB通道,不是嗎? – albert

2

使用單元陣列。假設您的其他代碼是正確的:

for idx = 3:numel(fileList) 
    tempImage{idx} = imread(fullfile(directory, fileList(idx).name)); 
end