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

 我来答
大野瘦子
高粉答主

2019-10-25 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.6万
展开全部

这样:

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

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

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

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

end

扩展资料:

注意事项

imgDir返回的是一个结构体,包含每个图片name(名称),date(日期),bytes(字节数),isdir(是否为文件夹/目录),datenum(修改日期,连续日期号码)。一般我们仅需使用图片名称就可以完成图片遍历的工作

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

imgDataPath = 'E:/imageData/';

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

for i = 1:length(imgDataDir)

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

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

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

continue;

end

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

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

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

end

end

大宝妈谈教育
高粉答主

2020-04-10 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:55.2万
展开全部

这个简单,参考如下:

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

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

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

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

扩展资料:

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

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的结构。一般情况下,我们只需要用图片的名称来完成图片的遍历工作

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c6e06f
推荐于2017-09-06 · TA获得超过2894个赞
知道小有建树答主
回答量:695
采纳率:66%
帮助的人:660万
展开全部
clc;
clear all;

maindir = 'E:\Temp Folder';
subdir =  dir( maindir );   % 先确定子文件夹

for i = 1 : length( subdir )
    if( isequal( subdir( i ).name, '.' ) || ...
        isequal( subdir( i ).name, '..' ) || ...
        ~subdir( i ).isdir )   % 如果不是目录跳过
        continue;
    end
    
    subdirpath = fullfile( maindir, subdir( i ).name, '*.jpg' );
    images = dir( subdirpath );   % 在这个子文件夹下找后缀为jpg的文件
    
    % 遍历每张图片
    for j = 1 : length( images )
        imagepath = fullfile( maindir, subdir( i ).name, images( j ).name  )
%         imgdata = imread( imagepath );   % 这里进行你的读取操作
    end
end

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅游路上小知识
高粉答主

2020-04-23 · 我是旅行小达人,专注解决旅行中遇到的问题
旅游路上小知识
采纳数:2 获赞数:83105

向TA提问 私信TA
展开全部

1、首先需要知道matlab读取图片的函数是imread函数,在命令行窗口中输入help imread,可以看到函数的用法。

2、在命令行窗口中输入“I=imread('1.png');subplot(2,2,1);imshow(I)”代码,如下图所示。

3、按回车键之后,可以看到matlab已经读取了图片,如下图所示。

4、也可以使用I=rgb2gray(I)代码,将图片变成灰色,如下图所示。

5、按回车键之后,可以看到已经将图片转成灰色图像了,根据需要处理图片,如下图所示。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3c63e6c
2014-03-19 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2793万
展开全部
用循环吧,将jpg名字命名为1,2,3,4,5,6.按顺序读取
更多追问追答
追问
谢谢,但是我希望的是读的是一个文件夹下的多个子文件夹中的多个图片,也就是每个子文件夹中有多个图片,而且名字不能改,因为名字是图片的类型,我之后的处理会用到名字作为识别~~
追答
后缀是图片的类型吧,那你各个子文件夹的名字是否有关联,每个子文件夹中的图片是否都是一种类型的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式