在matlab中如何将130张图片转为一个1360*1360的矩阵mat文件
时间: 2023-06-25 17:05:42 浏览: 158
在Matlab中,可以使用imread函数读取图片,然后将它们组合成一个大的矩阵。可以按照以下步骤进行操作:
1. 首先,创建一个空的矩阵,用于存储所有的图片。这个矩阵的大小应该是1360x1360x3(其中3表示RGB三个通道)。
2. 使用一个循环结构,遍历所有的图片文件,并使用imread函数将每张图片读取进来。将每张图片的RGB通道分别保存在一个三维矩阵中。
3. 将每张图片的RGB三个通道矩阵按顺序存储到大矩阵中。可以使用reshape函数将每个三维矩阵变成一个1x(kxkx3)的向量,其中k=1360,然后将这些向量按顺序拼接起来,形成一个较大的向量。最后使用reshape函数将这个向量变成一个1360x1360x3的三维矩阵。
4. 将这个大的三维矩阵保存为.mat文件,使用save函数即可。
下面是一个示例代码:
```matlab
% 设置图片文件夹路径和.mat文件保存路径
img_folder = 'path/to/folder';
mat_file = 'path/to/file.mat';
% 创建一个空的矩阵
img_matrix = zeros(1360, 1360, 3);
% 遍历所有的图片文件
img_files = dir(fullfile(img_folder, '*.jpg'));
for i = 1:length(img_files)
% 读取图片
img = imread(fullfile(img_folder, img_files(i).name));
% 将RGB通道分别保存在一个三维矩阵中
img_r = img(:,:,1);
img_g = img(:,:,2);
img_b = img(:,:,3);
% 将每张图片的RGB三个通道矩阵按顺序存储到大矩阵中
img_vec = [reshape(img_r, 1, []) reshape(img_g, 1, []) reshape(img_b, 1, [])];
img_matrix(:, :, i) = reshape(img_vec, 1360, 1360, []);
end
% 将大的三维矩阵保存为.mat文件
save(mat_file, 'img_matrix');
```
阅读全文