OpenCV轻松入门(九)——使用第三方库imgaug自定义数据增强器

安装命令:pip install imgaug

代码实现:

python 复制代码
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
相关推荐
半壶清水17 小时前
【开源免费】使用 Python + Whisper + PyDub 自动切割长音频文件
开发语言·python·语言模型·开源·whisper
BoBoZz1917 小时前
BillboardTextActor3D 3D字体随镜头旋转
python·vtk·图形渲染·图形处理
天才测试猿17 小时前
软件测试之bug分析定位技巧
软件测试·python·selenium·测试工具·职场和发展·测试用例·bug
duyinbi751717 小时前
【环境监测】河流目标检测:建筑物、树木和水轮机识别实战
人工智能·目标检测·计算机视觉
課代表17 小时前
Python 数据可视化:从单变量到多变量
开发语言·python·信息可视化·数据分析·变量·时间序列·文本分析
WJSKad123517 小时前
【狮子目标检测】YOLO13-GhostDynamicConv改进模型实现与性能分析
人工智能·目标检测·计算机视觉
love_summer17 小时前
深入理解Python流程控制:从算法设计到顺序执行机制(附代码)
python
山沐与山17 小时前
【Python】深入理解Python Web框架:从Flask到FastAPI的并发之路
python·flask·fastapi
嫂子的姐夫17 小时前
011-AES:深证信
爬虫·python·逆向