Matlab读入images文件夹里面的所有图像。读取时将每幅图像灰度化,然后调整图像大小至50*40大小,将每幅图像的数据变成列向量,最终10幅图像的数据赋值给变量data(2000*10大小)。
时间: 2024-11-25 10:22:00 浏览: 15
在MATLAB中,你可以使用`imread`函数读取图像文件夹中的所有图像,`rgb2gray`函数将其转换为灰度,`imresize`调整图像大小,然后将所有图像转换为列向量。以下是实现这个过程的步骤:
```matlab
% 定义图片路径和目标尺寸
folder_path = 'images/';
target_size = [50, 40];
% 创建一个cell数组来保存所有的图像数据
image_data = cell(1, 10);
for i = 1:10
% 读取第i张图像
img = imread(fullfile(folder_path, ['image_' num2str(i) '.jpg'])); % 假设图片是.jpg格式
% 检查图像是否存在
if ~exist(img, 'file')
warning(['Image ' num2str(i) ' not found. Skipping...']);
continue;
end
% 灰度化图像
gray_img = rgb2gray(img);
% 调整图像大小
resized_img = imresize(gray_img, target_size);
% 转换为列向量
image_data{i} = reshape(resized_img(:), [], 1); % 矩阵转列向量
end
% 合并所有图像数据为一个大矩阵
data = vertcat(image_data{:}); % 数据拼接成2000*10大小的矩阵 (因为50*40=2000)
```
注意这里假设图片文件名是'image_1.jpg', 'image_2.jpg', ...,如果有其他命名规则,你需要相应地修改文件名字符串。
阅读全文