|
038、imgaug图像增强之混合叠加图片
- # -*- coding: utf-8 -*-
- __author__ = u'东方耀 微信:dfy_88888'
- __date__ = '2020/1/13 20:21'
- __product__ = 'PyCharm'
- __filename__ = 'Overlaying images'
- '''
- 混合叠加图片
- augment会直接改变图片而把原图舍弃掉了。有时我们需要改变图像的局部,或者将原来的图片跟新变换的图片结合起来。
- 这可以通过给变换前后的图片配上一定的权重(参数)或者使用一个pixel-wise的mask
- '''
- import imgaug as ia
- import imgaug.augmenters as iaa
- import numpy as np
- image = ia.quokka(size=(256, 256))
- print(type(image), image.shape)
- ia.seed(666)
- batch_images = [image] * 8
- seq1 = iaa.Sequential(children=[
- # First row
- iaa.Alpha(
- (0.0, 1.0),
- first=iaa.MedianBlur(11),
- per_channel=True
- )
- ])
- batch_images_row1 = seq1.augment_images(batch_images)
- batch_images_row1 = np.hstack(batch_images_row1)
- # ia.imshow(batch_images_row1)
- seq2 = iaa.Sequential(children=[
- # Second row
- iaa.SimplexNoiseAlpha(
- first=iaa.EdgeDetect(1.0),
- per_channel=False
- )
- ])
- batch_images_row2 = seq2.augment_images(batch_images)
- batch_images_row2 = np.hstack(batch_images_row2)
- seq3 = iaa.Sequential(children=[
- # Third row
- iaa.SimplexNoiseAlpha(
- first=iaa.EdgeDetect(1.0),
- # second=iaa.ContrastNormalization((0.5, 2.0)),
- second=iaa.contrast.LinearContrast(alpha=(0.5, 2.0)),
- per_channel=0.5
- )
- ])
- batch_images_row3 = seq3.augment_images(batch_images)
- batch_images_row3 = np.hstack(batch_images_row3)
- seq4 = iaa.Sequential(children=[
- # Forth row
- iaa.FrequencyNoiseAlpha(
- first=iaa.Affine(
- rotate=(-10, 10),
- translate_px={"x": (-4, 4), "y": (-4, 4)}
- ),
- second=iaa.AddToHueAndSaturation((-40, 40)),
- per_channel=0.5
- )
- ])
- batch_images_row4 = seq4.augment_images(batch_images)
- batch_images_row4 = np.hstack(batch_images_row4)
- seq5 = iaa.Sequential(children=[
- # Fifth row
- iaa.SimplexNoiseAlpha(
- first=iaa.SimplexNoiseAlpha(
- first=iaa.EdgeDetect(1.0),
- second=iaa.contrast.LinearContrast(alpha=(0.5, 2.0)),
- per_channel=True
- ),
- second=iaa.FrequencyNoiseAlpha(
- exponent=(-2.5, -1.0),
- first=iaa.Affine(
- rotate=(-10, 10),
- translate_px={"x": (-4, 4), "y": (-4, 4)}
- ),
- second=iaa.AddToHueAndSaturation((-40, 40)),
- per_channel=True
- ),
- per_channel=True,
- aggregation_method="max",
- sigmoid=False
- )
- ])
- batch_images_row5 = seq5.augment_images(batch_images)
- batch_images_row5 = np.hstack(batch_images_row5)
- ia.imshow(np.vstack([batch_images_row1, batch_images_row2, batch_images_row3, batch_images_row4, batch_images_row5]))
复制代码
|
|