matlab 读取同一文件中所有图像_如何从matlab中的文件夹中读取图像

我有六个像这样的文件夹>>图片

每个文件夹包含一些图像。 我知道如何在matlab中读取图像但是我的问题是如何遍历这些文件夹并在abc.m文件中读取图像(此文件显示在此图像中)任何帮助都会有所帮助。 提前致谢。

如果您知道包含目录的图像的路径,则可以在其上使用dir列出其中的所有文件(和目录)。使用您想要的图像扩展名过滤文件,瞧,您有一个数组,其中包含您指定的目录中的所有图像:

dirname = 'images';

ext = '.jpg';

sDir=  dir( fullfile(dirname ,['*' ext]) );;

sDir([sDir.isdir])=[]; % remove directories

%跟随是过时的,因为通配dir ^^

b = arrayfun(@(x)strcmpi(x.name(end-length(ext)+1:end),ext),sDir);扩展名上的%过滤器

sFiles = sDir(b); s>

在使用之前,您可能希望使用目录为每个文件的名称添加前缀:

sFileName(ii) = fullfile(dirname, sFiles(ii));

您可以根据需要处理生成的文件。加载所有文件,例如:

for ii=1:numel(sFiles)

data{i}=imread(sFiles(ii).name)

end

如果你还要递归子目录,我建议你看看:

如何在MATLAB中获取特定目录下的所有文件?

或其他FEX解决方案:

http://www.mathworks.com/matlabcentral/fileexchange/8682-dirr-find-files-recursively-filtering-name-date-or-bytes

http://www.mathworks.com/matlabcentral/fileexchange/15505-recursive-dir

编辑:添加了Amro关于通配dir电话的建议

而不是手动过滤文件,您可以指定如下内容:dir('folder\*.ext')。 这是一个例子:stackoverflow.com/a/7293443/97160

@Amro:我当时认为这样的通配符不起作用..我想我把它与其他东西混淆了:p thx for tip!

最简单的方法当然是在matlab中的forlder和"添加到路径">>"选定的文件夹和子文件夹"中的正确答案

然后,您可以使用imread获取图像,而无需指定路径。

非常感谢你的回复

所以基本上你想要读取不同文件夹中的图像,而不是将所有图像放入一个文件夹并使用imread()?因为您可以复制所有图像(并以一种让您知道它们来自哪个文件夹的方式命名)到您的MATLAB工作目录中,然后以这种方式加载它们。

使用cd命令更改目录(如* nix中),然后在遍历每个文件夹时加载/读取图像。您可能需要绝对路径名称。

谢谢回到上一个(父)目录? 就像在DOS中它的cd..

cd .. .指的是当前目录,..指的是其父目录。

意味着cd '..';会将我移动到其父目录?

没有引号,只是:cd ..另外,如果你知道父目录的绝对路径,你也可以使用它。

将它用作函数时需要引号! 见mathworks.nl/help/techdoc/matlab_prog/f10-60415.html#f10-60461

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值