在Matlab中从文件夹中读取多个图像的问题

时间:2015-05-27 10:11:42

标签: windows matlab

我有一组位于文件夹中的图像,我正在尝试读取这些图像并将其名称存储在文本文件中。图像的顺序非常重要。

我的代码如下:

imagefiles = dir('*jpg');
nfiles = length(imagefiles);    % Number of files found
%*******************
for ii=1:nfiles
    currentfilename = imagefiles(ii).name;
    % write the name in txt file
end

按以下顺序存储在文件夹中的图像:{1,2,3,4,100,110}

Matlab读取和写入图像序列为{ 1,100,110,2,3,4}的问题。哪个订单不正确。

如何克服这个问题?

1 个答案:

答案 0 :(得分:1)

我建议使用scanf来查找文件的编号。为此,您必须创建一个格式规范,显示您的文件名的构建方式。如果是数字,则后跟.jpg,即:'%d.jpg'。 您可以使用namecellfun个文件上拨打sscanf(扫描字符串):

imagefiles = dir('*jpg');
fileNo = cellfun(@(x)sscanf(x,'%d.jpg'),{imagefiles(:).name});

然后排序fileNo,保存已排序数组的索引并在for循环中遍历这些索引:

[~,ind] = sort(fileNo);
for ii=ind
    currentfilename = imagefiles(ii).name;
    % write the name in txt file
end