现在要一次性读入一个文件夹里的全部图片,怎么用MATLAB来实现,如果一张一张来的话,要不断改名字,很麻烦,可以一次性吗?谢谢
1、查看图片所在的位置。
2、输入命令I=imread('E:\1.jpg')。
3、点击右边工作区的名称为I的,可以查看图片的编码。
4、输入命令imsho(I),选择命令,右击,执行所选内容。
5、或选择命令,点击上端的“运行并前进”。
6、如图所示,图片就显示出来了。
主要使用了imread函数,for循环指令,即函数imread用于读取图片文件中的数据,for用于读取所有图片。可以在matlab的命令窗口中输入doc imread或者help imread即可获得该函数的帮助信息。
[f,p]=uigetfile('*.*','选择图像文件');
if f
A=imread(strcat(p,f));
imshow(A);
end
下面这段代码实现文件夹下所有图片的读入并以mat格式存储
for i=1:length(foldername)-2
filename=strcat('总文件夹名字\',foldername(i+2).name);% 读取子文件夹的名字和路径
filenmae_bmp=dir(strcat(filename,'\*.bmp'));% 读取子文件夹图片,bmp格式
imagedata=imread(filename_bmp);% 读取图片
save('存放路径\名字.mat',imagedata);
end
首先定义文件夹的名称:
imgDir='.\coimg\';
imgDir2='.\\coimg\\%s'; 用于读取图片
具体代码:
oldPwd = pwd;
cd(imgDir);
x = dir;
listOfImages = [];
for i = 1:length(x),
if x(i).isdir == 0,
listOfImages = [listOfImages; x(i)];
end;
end;
cd(oldPwd);
fid=imgDir2;
for j = 1:length(listOfImages)
fileName = listOfImages(j).name;
rfid=sprintf(fid,fileName);
Irgb=imread(rfid);
Iset{j}=Irgb;
end