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
相关推荐
一只小鱼儿吖16 分钟前
从代理ip的底层逻辑探讨下如何选择代理ip商。
网络·python·网络协议·tcp/ip
山沐与山1 小时前
【设计模式】Python工厂模式与依赖注入:FastAPI的Depends到底在干嘛
python·设计模式·fastapi
写代码的【黑咖啡】1 小时前
Python常用数据处理库全解析
开发语言·python
2401_841495641 小时前
【Python高级编程】图着色动态可视化 APP
python·算法·matplotlib·tkinter·回溯法·图着色算法·动态可视化工具
南风微微吹2 小时前
【2026年3月最新】计算机二级Python题库下载安装教程~共19套真题
开发语言·python·计算机二级python
啊阿狸不会拉杆2 小时前
《数字图像处理》实验2-空间域灰度变换与滤波处理
图像处理·人工智能·机器学习·计算机视觉·数字图像处理
阿蔹2 小时前
Python基础语法三---函数和数据容器
开发语言·python
xingzhemengyou12 小时前
Python 多线程同步
开发语言·python
3824278272 小时前
python3网络爬虫开发实战 第二版:绑定回调
开发语言·数据库·python
dagouaofei2 小时前
培训项目总结 PPT 工具对比评测,哪款更专业
python·powerpoint