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
相关推荐
兵慌码乱2 小时前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot3 小时前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海8 小时前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱10 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽15 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码15 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱1 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵1 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663671 天前
使用 Python 从零创建 Word 文档
python