对.mat数据集做数据增强的代码
时间: 2024-05-01 18:16:08 浏览: 94
OASBUD数据读取代码
数据增强可以增加数据集的多样性和数量,有助于提高模型的泛化能力和鲁棒性。下面是一个使用imgaug库对.mat数据集进行数据增强的示例代码:
```python
import os
import scipy.io
import numpy as np
import imgaug.augmenters as iaa
# 加载数据集
data = scipy.io.loadmat('dataset.mat')
images = data['images'] # (n_samples, height, width, n_channels)
labels = data['labels'] # (n_samples,)
# 定义数据增强器
seq = iaa.Sequential([
iaa.Fliplr(0.5), # 水平翻转
iaa.GaussianBlur(sigma=(0, 3.0)), # 高斯模糊
iaa.Affine(rotate=(-10, 10), mode='symmetric'), # 旋转
iaa.AdditiveGaussianNoise(scale=(0, 0.1*255)), # 加入高斯噪声
])
# 对每张图片进行数据增强
aug_images = []
aug_labels = []
for i in range(len(images)):
image = images[i]
label = labels[i]
aug_image = seq(image=image) # 应用数据增强器
aug_images.append(aug_image)
aug_labels.append(label)
# 将增强后的数据保存为.mat文件
aug_data = {'images': np.array(aug_images), 'labels': np.array(aug_labels)}
scipy.io.savemat('aug_dataset.mat', aug_data)
```
注意,这里使用的是imgaug库,需要用pip命令安装。在上面的示例代码中,我们定义了一个数据增强器seq,其中包括了一些常用的数据增强方法,比如水平翻转、高斯模糊、旋转和加入高斯噪声等。然后对每张图片进行增强,并将增强后的数据保存为.mat文件。
阅读全文