You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中读取多张图片并存储到单元格数组?

解决MATLAB读取目录所有图片并存储到单元格数组的问题

修改后的完整代码

clear; clc;
path = uigetdir(); % 选择目标目录
if isequal(path, 0) 
   disp('用户取消了选择');
   return
else
   disp(['用户选择的目录: ', path]); 
end

% 过滤目录中的图片文件(支持jpg、png、bmp格式,可按需添加)
imageFormats = {'*.jpg', '*.png', '*.bmp'};
theFiles = [];
for fmt = imageFormats
    theFiles = [theFiles; dir(fullfile(path, fmt{1}))];
end

% 初始化存储图片的单元格数组
imageCell = cell(length(theFiles), 1);

% 遍历所有图片文件,读取并存入单元格数组
for k = 1:length(theFiles)
    baseFileName = theFiles(k).name;
    fullFileName = fullfile(theFiles(k).folder, baseFileName);
    fprintf(1, '正在读取 %s\n', fullFileName);
    % 读取图片并存入单元格数组
    imageCell{k} = imread(fullFileName);
end

% 验证:输出单元格数组的长度(即读取的图片数量)
fprintf(1, '共读取 %d 张图片\n', length(imageCell));

关键修改说明

  • 过滤图片文件:原代码直接用dir(path)会获取目录下所有文件(包括.、..和非图片文件),通过指定图片格式后缀,只读取目标类型的文件,避免读取无效文件报错。
  • 初始化单元格数组:提前创建对应长度的单元格数组,保证循环中可以直接赋值。
  • 循环内完成读取存储:把imread放到循环内部,每遍历一个文件就读取并存入单元格数组的对应位置,而不是循环结束后只读取最后一个文件的路径。
  • 灵活支持多格式:通过imageFormats数组可以轻松添加或删除需要支持的图片格式。

内容的提问来源于stack exchange,提问作者Polina Grushina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:12:10