当前位置:首页 » 文件管理 » matlab读取文件夹中的所有

matlab读取文件夹中的所有

发布时间: 2024-06-22 01:40:37

① 怎样用matlab读取一个文件夹下的多个子文件夹中的多个jpg图片,急用啊~~~

这个简单,参考如下:

imgPath='E:/imageData/';%图像库路径

imgDir=dir([imgPath'*.jpg']);%遍历所有jpg格式文件

fori=1:length(imgDir)%遍历结构体就可以一一处理图片了

img=imread([imgPathimgDir(i).name]);%读取每张图片

(1)matlab读取文件夹中的所有扩展阅读:

需要先遍历所有子文件夹,然后依次再遍历每个子文件夹下的图片,程序如下。

imgDataPath='E:/imageData/';

imgDataDir=dir(imgDataPath);%遍历所有文件

fori=1:length(imgDataDir)

if(isequal(imgDataDir(i).name,'.')||...%去除系统自带的两个隐文件夹

isequal(imgDataDir(i).name,'..')||...

~imgDataDir(i).isdir)%去除遍历中不是文件夹的

continue;

end

imgDir=dir([imgDataPathimgDataDir(i).name'/*.jpg']);

forj=1:length(imgDir)%遍历所有图片

img=imread([imgDataPathimgDataDir(i).name'/'imgDir(j).name]);

end

end

ImgDir返回一个包含每个图像名称、日期、字节、isdir和datenum的结构。一般情况下,我们只需要用图片的名称来完成图片的遍历工作

② 用MATLAB如何读取一个文件夹里的图片

1、查看图片所在的位置。

③ 如何使用matlab读取多层文件夹中的所有数据文件

方法/步骤
获取第一层文件夹下的所有文件夹以及数据信息结构体。
例如:主路径是SourcePath
可以通过相对路径代码cd(SourcePath);File1NameFormation=dir('*.')获取当前路径下所有文件夹信息并且将文件夹信息保存在File1NameFormation中。也可以使用绝对路径:File1NameFormation=dir('SourcePath\*.');对于需要列出什么类型的文件可以通过将'*.'改成'*.xxx';其中XXX为类型文件扩展名
对路径扩展进行计数,循环进行分文件夹读取
File1Number=numel(File1NameFormation);或者File1Number=size(File1NameFormation,1);通过获取当前文件夹中有多少层文件夹。
对得到的文件夹通过计数进行循环,进入次文件夹一次继续读取文件。
但是这里需要注意的是,如果是文件夹需要从第三个文件夹读取,因为'.'和'..'一个为当前文件夹一个为上一层文件夹,所以需要从第三个文件读取,可以通过第二个返回上一层文件夹。
可以发现进入子文件后就进入循环了,返回了第一步。在这里可以整合所有的代码
cd(SourcePath)
File1NameFormation=dir('*.');
File1Number=numel(File1NameFormation)
for LoopFile1Number=3:File1Number
NowPath=fullfile(SourcePath,File1NameFormation(LoopFile1Number).name
......................
end
回顾整个过程,重复写的代码很多,在这里我们可以通过运用递归的思维写一个读取数据代码。
这里通过循环来写读取文件函数。
function ReadFile(MainPath,FileType,FileLayer)
%%%%%%%%%%%%%%
%MainPath为主路径,FileType为需要读取的文件类型,FileLayer为文件类型在哪一层文件下
cd(MainPath);
if(FileLay>=0)
PathFileFormation=dir('*.');
PathNumber=numel(PathFileFormation);
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber).name);
ReadFile(Path,FileType,FileLayer-1)
end
else
PathFileFormation=dir('FileType');
PathNumber=numel(PathFileFormation);
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber).name)
end
end

④ matlab 读取不同文件夹下不同图片,进行处理。

不知道你从哪里找来这么一段代码,简单看了一下,这段代码的功能是,搜索指定文件夹的子目录中所有扩展名为jpg的文件,并把文件的路径名保存到jpgpath这样一个cell数组中,每行代表一个子目录。

存在以下问题:
1、这段代码并不包括你所说的拼接图片的功能。
2、第一个for循环的if语句没有考虑文件夹中除了子目录还可能有文件存在,这是一个很愚蠢的错误。
3、第二个for循环用来搜索各子目录中的jpg文件,并把文件的路径名保存在一个2维cell数组中。这个做法也是比较愚蠢的,因为各子目录中的jpg文件数量可能相差很多,这种存储方式不可取。

在现有代码基础上改写实现拼接图片的功能并不困难,但需要明确一些问题:
1、文件是否有顺序问题(按什么排序)?
2、纵向还是横向拼接?
3、如果各图片的宽(或高)不同,怎样处理?可选的方式至少有以下几种:
(1)按最大宽度,对于较小宽度的图片,不足部分以某种颜色填充;
(2)按最大宽度,对于较小宽度的图片,放大以适应最大宽度(又可区分是否锁定宽高比);
(3)按最小宽度,对于较大宽度的图片,剪切多余的部分(又可细分为保留哪个部分);
(4)按最小宽度,对于较大宽度的图片,缩小以适应最小宽度。
4、保存的文件怎样命名、保存在什么位置?可以考虑与子目录同名(加上jpg扩展名),存放在所指定的文件夹中(而不是子目录中)

热点内容
怎样在我的世界重建服务器 发布:2024-10-22 23:37:10 浏览:355
安卓手机如何使用手写功能 发布:2024-10-22 23:19:16 浏览:351
手机壁纸上传 发布:2024-10-22 23:13:51 浏览:772
oracle数据库迁移方案 发布:2024-10-22 23:10:53 浏览:384
七牛云存储java上传 发布:2024-10-22 23:10:49 浏览:236
kvm编译原理 发布:2024-10-22 22:57:41 浏览:441
qq密码情侣改成什么最好 发布:2024-10-22 22:55:48 浏览:809
linux安装cuda 发布:2024-10-22 22:32:07 浏览:487
编译和链接的键 发布:2024-10-22 22:21:01 浏览:115
java数组的实现 发布:2024-10-22 22:18:15 浏览:331