东方耀AI技术分享

标题: 038、imgaug图像增强之混合叠加图片 [打印本页]

作者: 东方耀    时间: 2020-1-13 20:43
标题: 038、imgaug图像增强之混合叠加图片


038、imgaug图像增强之混合叠加图片

  1. # -*- coding: utf-8 -*-
  2. __author__ = u'东方耀 微信:dfy_88888'
  3. __date__ = '2020/1/13 20:21'
  4. __product__ = 'PyCharm'
  5. __filename__ = 'Overlaying images'

  6. '''
  7. 混合叠加图片
  8. augment会直接改变图片而把原图舍弃掉了。有时我们需要改变图像的局部,或者将原来的图片跟新变换的图片结合起来。
  9. 这可以通过给变换前后的图片配上一定的权重(参数)或者使用一个pixel-wise的mask
  10. '''
  11. import imgaug as ia
  12. import imgaug.augmenters as iaa
  13. import numpy as np


  14. image = ia.quokka(size=(256, 256))
  15. print(type(image), image.shape)
  16. ia.seed(666)

  17. batch_images = [image] * 8

  18. seq1 = iaa.Sequential(children=[
  19.     # First row
  20.     iaa.Alpha(
  21.         (0.0, 1.0),
  22.         first=iaa.MedianBlur(11),
  23.         per_channel=True
  24.     )
  25. ])

  26. batch_images_row1 = seq1.augment_images(batch_images)
  27. batch_images_row1 = np.hstack(batch_images_row1)
  28. # ia.imshow(batch_images_row1)


  29. seq2 = iaa.Sequential(children=[
  30.     # Second row
  31.     iaa.SimplexNoiseAlpha(
  32.         first=iaa.EdgeDetect(1.0),
  33.         per_channel=False
  34.     )
  35. ])

  36. batch_images_row2 = seq2.augment_images(batch_images)
  37. batch_images_row2 = np.hstack(batch_images_row2)

  38. seq3 = iaa.Sequential(children=[
  39.     # Third row
  40.     iaa.SimplexNoiseAlpha(
  41.         first=iaa.EdgeDetect(1.0),
  42.         # second=iaa.ContrastNormalization((0.5, 2.0)),
  43.         second=iaa.contrast.LinearContrast(alpha=(0.5, 2.0)),
  44.         per_channel=0.5
  45.     )
  46. ])

  47. batch_images_row3 = seq3.augment_images(batch_images)
  48. batch_images_row3 = np.hstack(batch_images_row3)

  49. seq4 = iaa.Sequential(children=[
  50.     # Forth row
  51.     iaa.FrequencyNoiseAlpha(
  52.         first=iaa.Affine(
  53.             rotate=(-10, 10),
  54.             translate_px={"x": (-4, 4), "y": (-4, 4)}
  55.         ),
  56.         second=iaa.AddToHueAndSaturation((-40, 40)),
  57.         per_channel=0.5
  58.     )
  59. ])

  60. batch_images_row4 = seq4.augment_images(batch_images)
  61. batch_images_row4 = np.hstack(batch_images_row4)

  62. seq5 = iaa.Sequential(children=[
  63.     # Fifth row
  64.     iaa.SimplexNoiseAlpha(
  65.         first=iaa.SimplexNoiseAlpha(
  66.             first=iaa.EdgeDetect(1.0),
  67.             second=iaa.contrast.LinearContrast(alpha=(0.5, 2.0)),
  68.             per_channel=True
  69.         ),
  70.         second=iaa.FrequencyNoiseAlpha(
  71.             exponent=(-2.5, -1.0),
  72.             first=iaa.Affine(
  73.                 rotate=(-10, 10),
  74.                 translate_px={"x": (-4, 4), "y": (-4, 4)}
  75.             ),
  76.             second=iaa.AddToHueAndSaturation((-40, 40)),
  77.             per_channel=True
  78.         ),
  79.         per_channel=True,
  80.         aggregation_method="max",
  81.         sigmoid=False
  82.     )
  83. ])

  84. batch_images_row5 = seq5.augment_images(batch_images)
  85. batch_images_row5 = np.hstack(batch_images_row5)


  86. 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