matlab怎么批量导入图片

我有一整组已经重命名的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

希望对题主有所帮助!可以的话,帮忙点个采纳!