Matlab 导入深度学习所需图片集文件夹并按1:9比例划分测试集和训练集,并修改图片尺寸为[224,224,3]
时间: 2024-05-15 18:12:53 浏览: 10
首先,我们需要将图片集文件夹中的图片读取进来,可以使用`imread`函数来实现,代码如下:
```matlab
img_folder = 'path/to/folder'; % 图片集文件夹路径
img_files = dir(fullfile(img_folder,'*.jpg')); % 获取文件夹中所有jpg格式的图片文件
num_imgs = length(img_files); % 获取图片文件数量
```
接下来,我们需要按照1:9的比例将图片划分为测试集和训练集,可以使用`randperm`函数随机打乱图片的顺序,并根据比例将图片分配到不同的集合中,代码如下:
```matlab
idx = randperm(num_imgs); % 随机打乱图片顺序
train_idx = idx(1:floor(num_imgs*0.9)); % 前90%的图片分配到训练集
test_idx = idx(floor(num_imgs*0.9)+1:end); % 后10%的图片分配到测试集
```
然后,我们需要将图片的尺寸修改为[224,224,3],可以使用`imresize`函数来实现,代码如下:
```matlab
img_size = [224,224,3]; % 修改后的图片尺寸
for i = 1:num_imgs
img = imread(fullfile(img_folder,img_files(i).name)); % 读取图片
img = imresize(img,img_size(1:2)); % 修改图片尺寸
img = repmat(img_size(3),[img_size(1:2),1]).*img; % 扩展图片通道数
if ismember(i,train_idx) % 根据索引判断图片属于训练集还是测试集
train_data(:,:,:,end+1) = img; % 添加到训练集中
else
test_data(:,:,:,end+1) = img; % 添加到测试集中
end
end
```
最终,我们可以得到修改尺寸后的训练集`train_data`和测试集`test_data`。注意,我们需要在添加图片时将图片通道数扩展为3,以便与深度学习模型的输入要求相匹配。完整代码如下:
```matlab
img_folder = 'path/to/folder'; % 图片集文件夹路径
img_files = dir(fullfile(img_folder,'*.jpg')); % 获取文件夹中所有jpg格式的图片文件
num_imgs = length(img_files); % 获取图片文件数量
idx = randperm(num_imgs); % 随机打乱图片顺序
train_idx = idx(1:floor(num_imgs*0.9)); % 前90%的图片分配到训练集
test_idx = idx(floor(num_imgs*0.9)+1:end); % 后10%的图片分配到测试集
img_size = [224,224,3]; % 修改后的图片尺寸
train_data = [];
test_data = [];
for i = 1:num_imgs
img = imread(fullfile(img_folder,img_files(i).name)); % 读取图片
img = imresize(img,img_size(1:2)); % 修改图片尺寸
img = repmat(img_size(3),[img_size(1:2),1]).*img; % 扩展图片通道数
if ismember(i,train_idx) % 根据索引判断图片属于训练集还是测试集
train_data(:,:,:,end+1) = img; % 添加到训练集中
else
test_data(:,:,:,end+1) = img; % 添加到测试集中
end
end
```