安装命令:pip install imgaug
代码实现:
import cv2
import random
import matplotlib.pyplot as plt
from imgaug import augmenters as iaa
# 数据增强——缩放效果
def zoom_img(img):
# 获取一个1-1.3倍的线性图像处理器,scale参数是缩放范围
zoom = iaa.Affine(scale=(0.5, 1.3))
# 将图片进行增强并返回
return zoom.augment_image(img)
# 数据增强——平移效果
def trans_img(img):
trans = iaa.Affine(translate_percent={"x":(-0.1,-0.1),"y":(-0.1,-0.1)})
# 将图片进行增强并返回
return trans.augment_image(img)
# 数据增强——亮度变化
def img_random_brightness(img):
# 亮度增加1.1-1.5倍
brightness = iaa.Multiply((1.1,1.5))
# 将图片进行增强并返回
return brightness.augment_image(img)
# 数据增强——镜像变化(按照业务需求,角度也要变化)
def img_flip(img,steering_angle):
# 0-水平翻转,1-垂直翻转
img = cv2.flip(img,1)
steering_angle = -steering_angle
return img,steering_angle
# 随机图片增强器
def random_agument(img_path,steering_angle):
index = random.randint(0,10)
img = plt.imread(img_path)
if index <=3:
img = zoom_img(img)
elif 3< index <6:
img = trans_img(img)
elif 6<=index<8:
img = img_random_brightness(img)
else:
img,steering_angle = img_flip(img,steering_angle)
return img,steering_angle