东方耀AI技术分享
标题:
038、imgaug图像增强之混合叠加图片
[打印本页]
作者:
东方耀
时间:
2020-1-13 20:43
标题:
038、imgaug图像增强之混合叠加图片
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]))
复制代码
作者:
xsoft
时间:
2020-2-3 15:20
谢谢老师答疑解惑
欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/)
Powered by Discuz! X3.4