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
相关推荐
Chasing__Dreams4 分钟前
python--杂识--18.1--pandas数据插入sqlite并进行查询
python·sqlite·pandas
cver12340 分钟前
CSGO 训练数据集介绍-2,427 张图片 AI 游戏助手 游戏数据分析
人工智能·深度学习·yolo·目标检测·游戏·计算机视觉
彭泽布衣1 小时前
python2.7/lib-dynload/_ssl.so: undefined symbol: sk_pop_free
python·sk_pop_free
强哥之神1 小时前
Meta AI 推出 Multi - SpatialMLLM:借助多模态大语言模型实现多帧空间理解
人工智能·深度学习·计算机视觉·语言模型·自然语言处理·llama
喜欢吃豆1 小时前
从零构建MCP服务器:FastMCP实战指南
运维·服务器·人工智能·python·大模型·mcp
一个处女座的测试2 小时前
Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
python·mysql·pytest
nananaij2 小时前
【Python基础入门 re模块实现正则表达式操作】
开发语言·python·正则表达式
蛋仔聊测试2 小时前
Playwright 网络流量监控与修改指南
python
nightunderblackcat3 小时前
进阶向:Python音频录制与分析系统详解,从原理到实践
开发语言·python·音视频
慕婉03073 小时前
Tensor自动微分
人工智能·pytorch·python