我有一整组已经重命名的bmp格式的图像,需要对他们统一做灰度化等处理,需要一起导入到matlab中。因为后续还要做图像的拼接,需要每张图都有相应的序号来确保拼接的顺序。
尝试用了for循环,但提示不能直接用imread,用别的代替的话会显示左侧的索引于右侧的大小不兼容。给图片命名的字母也会显示“会随着迭代次数改变”工作区也没有采集到的数据。
files = dir(fullfile('C:\\Users\\Administrator\\Desktop\\sd\\','*.jpg'));
lengthFiles = length(files);
for i = 1:lengthFiles;
Img = imread(strcat('C:\Users\Administrator\Desktop\sd\',files(i).name));%文件所在路径
disp(strcat('C:\Users\Administrator\Desktop\sd\',files(i).name)) %打印文件路径
imshow(Img)
end
可以考虑试试这种方法:
function import_imageDatas(image_path)
image_list=dir(fullfile(image_path,'*.jpg'));%列出path路径下所有后缀为.jpg的文件
image_num=length(image_list);%获取图片数量
if image_num==0
fprintf('未找到任何图像\n');
else
fprintf('已找到%d张图像\n',image_num);
for i=1:image_num
image_name=image_list(i).name;%获取每一张图片名称
%用eval函数可以实现将每一张图片以变量形式保存
val=strcat('Image',num2str(i));
eval([val,'=imread(fullfile(image_path,image_name));']);%导入每一张图片,注意,这里导入的是三通道彩色图像
if i==1
save('ImageDatas.mat',val);%将图片数据以.mat文件保存下来
else
save('ImageDatas.mat',val,'-append');%将图片数据以.mat文件保存下来
end
end
end
end
具体内容见一位博主所写博客:https://blog.csdn.net/qq_18052685/article/details/105875851
希望对题主有所帮助!可以的话,帮忙点个采纳!