matlab读取文件夹图片
㈠ matlab 读取不同文件夹下不同图片,进行处理。
不知道你从哪里找来这么一段代码,简单看了一下,这段代码的功能是,搜索指定文件夹的子目录中所有扩展名为jpg的文件,并把文件的路径名保存到jpgpath这样一个cell数组中,每行代表一个子目录。
存在以下问题:
1、这段代码并不包括你所说的拼接图片的功能。
2、第一个for循环的if语句没有考虑文件夹中除了子目录还可能有文件存在,这是一个很愚蠢的错误。
3、第二个for循环用来搜索各子目录中的jpg文件,并把文件的路径名保存在一个2维cell数组中。这个做法也是比较愚蠢的,因为各子目录中的jpg文件数量可能相差很多,这种存储方式不可取。
在现有代码基础上改写实现拼接图片的功能并不困难,但需要明确一些问题:
1、文件是否有顺序问题(按什么排序)?
2、纵向还是横向拼接?
3、如果各图片的宽(或高)不同,怎样处理?可选的方式至少有以下几种:
(1)按最大宽度,对于较小宽度的图片,不足部分以某种颜色填充;
(2)按最大宽度,对于较小宽度的图片,放大以适应最大宽度(又可区分是否锁定宽高比);
(3)按最小宽度,对于较大宽度的图片,剪切多余的部分(又可细分为保留哪个部分);
(4)按最小宽度,对于较大宽度的图片,缩小以适应最小宽度。
4、保存的文件怎样命名、保存在什么位置?可以考虑与子目录同名(加上jpg扩展名),存放在所指定的文件夹中(而不是子目录中)
㈡ 用MATLAB如何读取一个文件夹里的图片
1、查看图片所在的位置。
㈢ 怎样用matlab读取一个文件夹下的多个子文件夹中的多个jpg图片,急用啊~~~
这个简单,参考如下:
imgPath='E:/imageData/';%图像库路径
imgDir=dir([imgPath'*.jpg']);%遍历所有jpg格式文件
fori=1:length(imgDir)%遍历结构体就可以一一处理图片了
img=imread([imgPathimgDir(i).name]);%读取每张图片
(3)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 图像按编号命名:1.jpg, 2.jpg,....,n.jpg
2 循环读图
I=cell(1,n);
for i=1:n
imageName=strcat(num2str(i),'.jpg');
I{i} = imread(imageName);
end
3 处理图像
-----------------------
如果图像很多,那么最好这样,第二步和第三步合并
for i=1:n
imageName=strcat(num2str(i),'.jpg');
I = imread(imageName);
处理当前图像
end
㈤ matlab读取文件夹下jpg图片并计算每个图片白色像素点数量
file_path='c:a';
img_path_list=dir(strcat(file_path,'*.jpg'));
img_num=length(img_path_list);
ifimg_num>0
forj=1:img_num
image_name=img_path_list(j).name;
I=imread(strcat(file_path,image_name));
r=I(:,:,1)==255;
g=I(:,:,2)==255;
b=I(:,:,3)==255;
L=r&g&b;
value{j}=sum(L(:));
end
end
㈥ 利用Matlab中的imread怎么读取图片
方法/步骤
1、在matlab软件中,读取图像数据(载入)利用的是imread函数,主要有以下4种方式:
A = imread(filename, fmt)
[X, map] = imread(...)
[...] = imread(filename)
[...] = imread(URL,...)
[...] = imread(...,Param1,Val1,Param2,Val2...)
作为初步以及最为常见的方式,采取第一种讲解。
如下图所示即为将载入的图片,图片格式(jpg) :
㈦ 关于MATLAB逐一读取一个文件夹中的图片
myfile通过dir读取的是结构体,其中有name属性。一般需要文件名,此外还有文件大小,是文件还是文件夹。
㈧ matlab中读取文件夹中的所有图像
一、先用cd命令进入所在文件夹;
二、定义变量例如apath,令apath=dir;
三、文件名变量name=apath(i,1).name;
四、图像数据pic=imread(name);
五、将读出的图像数据保存,用什么命令你自己查查,这个应该不难。
㈨ matlab 从文件夹中找图片的程序
比如你想读取所有jpg格式的文件
filename=dir('*.jpg');
然后
filename(i).name
就是第i张图片的名称了,你就可以读取了
比如
A=imread(filename(1).name);
你可以指定某文件夹下进行搜索,默认是current dictionary
㈩ 有没有大神指点一下,我想用MATLAB读取按顺序读取一个文件夹里的图片,
你首先把文件名都改成
001.jpg
002.jpg
003.jpg
……
然后
for i=1:n
picname=['00',num2str(i),'.jpg'];
II=imread(picname);
end