imgaug数据增强库实现图像增强代码

这篇博客介绍了如何利用imgaug数据增强库对二维图像数据进行增强。图像数据具有(N,height,width,channels)的维度结构,其中channels代表RGB通道或灰度图的通道数。数据增强针对的是uint8类型的图像,值域在0到255之间。" 88238247,7650816,使用JavaScript实现打印沙漏算法,"['JavaScript算法练习', '编程竞赛']
摘要由CSDN通过智能技术生成

前言:

                 该数据增强库比较容易上手,我们读取的二维图像数据,记为images,images有四个维度,分别为(N,height,weidth,channels),即:图像数量,图像高度,图像宽度,图像的通道(RGB)。如果是灰度图的话,同样为四个维度,只是channels为1。数据必须是uint8类型,大小在0到255之间。对images中的图像数据进行增强如下:

import glob
import os
import cv2
from imgaug import augmenters as iaa
import imgaug as ia


all_images = glob.glob('C:/Users/tianr/Desktop/images/GreyPng/*.png')
#print(all_images)
for path in all_images:
    name = os.path.basename(path)[:-4]
    #print(name)
    images = cv2.imread(path,0)
    images = [images,images,images]
    #定义一个lambda表达式,以p=0.5的概率去执行sometimes传递的图像增强
    sometimes = lambda aug:iaa.Sometimes(0.5,aug)
    #建立一个名为seq的实例,定义增强方法,用于增强
    aug =iaa.Sequential(
        [
        iaa.Fliplr(0.5),# 对50%的图像进行镜像翻转
        iaa.Flipud(0
下面是一个使用 `imgaug` 实现数据集增强扩充的示例代码: ```python import cv2 import imgaug.augmenters as iaa def augment_data(image, mask): # 定义数据增强的转换函数 seq = iaa.Sequential([ iaa.Fliplr(0.5), iaa.Flipud(0.5), iaa.Rotate((-45, 45)), iaa.ElasticTransformation(alpha=50, sigma=5), iaa.PiecewiseAffine(scale=(0.01, 0.05)), iaa.Sometimes(0.2, iaa.Superpixels(p_replace=(0, 0.5), n_segments=(20, 200))), iaa.OneOf([ iaa.Multiply((0.8, 1.2)), iaa.GammaContrast((0.8, 1.2)), iaa.LinearContrast((0.8, 1.2)), ]) ], random_order=True) augmented_image, augmented_mask = seq(image=image, segmentation_maps=[mask]) # 将数据增强后的掩码转换为二值图像 augmented_mask = augmented_mask.draw()[0][:, :, 0] return augmented_image, augmented_mask # 示例用法 image = cv2.imread('image.jpg') mask = cv2.imread('mask.png', 0) augmented_image, augmented_mask = augment_data(image, mask) # 显示增强后的图像和掩码 cv2.imshow('Augmented Image', augmented_image) cv2.imshow('Augmented Mask', augmented_mask) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个示例中,我们使用 `imgaug` 实现数据增强。通过创建一个 `Sequential` 对象,并添加一系列的增强操作,可以定义数据增强的转换函数。你可以根据需要自定义增强操作,并在 `augment_data` 函数中添加或删除对应的增强操作。最后,使用 `seq` 对象对图像和掩码进行增强,并将增强后的结果返回。注意,为了将掩码也进行相应的增强,我们将其作为 `segmentation_maps` 参数传递给 `seq` 对象。最后,将增强后的图像和掩码用于训练语义分割模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

despacito,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值