使用matlab在mat文件中存储多个图像

时间:2017-06-08 16:05:00

标签: matlab image-processing

下面的matlab代码是从文件夹中读取6张图像并将其保存在mat文件中 然后返回读取mat文件并检查其中的图像

问题在于 只是最后一个图像存储在mat文件中

问题在于保存功能::

我应该编辑什么来使保存功能将存储在结果单元格中的所有图像存储到mat文件

%Generate mat file
srcFile = dir('C:\Users\Desktop\images\*.jpg');
result = cell(1,length(srcFile));
for i = 1 : length(srcFile)
    filename = strcat('C:\Users\Desktop\images\',srcFile(i).name);
    I = imread(filename);
    %figure, imshow(I);
    I = imresize(I,[128 128]);
    result{i} = I;  
    figure, imshow(result{i});
end

save images, result;



%Read mat file 
for j =1 :length(srcFile)
    filename = strcat('C:\Users\Desktop\images\',srcFile(j).name);
    I = imread(filename);
    a='I';
    input = load('images.mat',a);
    figure, imshow(input.(a));
end

1 个答案:

答案 0 :(得分:0)

你的第一个循环,直至save,没问题。

加载数据时,请在第二个循环之前使用load('images.mat')。然后,您已在工作区中备份result变量,并对其进行迭代:

load('images.mat')
for j = 1:length(srcFile)
    figure, imshow(result{j});
end

您必须记住的是.mat文件只包含您保存的变量,但您无法使用load直接访问它们。首先加载它们,然后访问加载的变量(通常具有与文件不同的名称)。

最后,如果你想检查这段代码,你需要在保存后clear工作区,否则你可能不会注意到你使用的某些变量不再存在(比如你得到的错误)与I)。