Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

imgaug库

简介

imgaug:机器学习实验中的图像增强库,特别是卷积神经网络。支持以多种不同方式增强图像、关键点/地标、边界框、热图和分割图。

安装

在anaconda prompt里进行

 pip install imgaug

看了几篇文章,出错的话可以先安装依赖库shapely

Overview

特效

官网网址

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

; Project 结构

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

程序

图片放入input

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

; 参考的源代码(来源于网络)

main.py


import cv2
from imgaug import augmenters as iaa
import os

sometimes = lambda aug: iaa.Sometimes(0.5, aug)

seq = iaa.Sequential([

    iaa.SomeOf((0, 5),
               [
                   iaa.Fliplr(0.5),
                   iaa.Flipud(0.5),

                   sometimes(
                       iaa.Superpixels(
                           p_replace=(0, 1.0),
                           n_segments=(20, 200)
                       )
                   ),

                   iaa.OneOf([
                       iaa.GaussianBlur((0, 3.0)),
                       iaa.AverageBlur(k=(2, 7)),
                       iaa.MedianBlur(k=(3, 11)),
                   ]),

                   iaa.Sharpen(alpha=(0, 1.0), lightness=(0.75, 1.5)),

                   iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)),

                   iaa.AdditiveGaussianNoise(
                       loc=0, scale=(0.0, 0.05 * 255)
                   ),

                   iaa.Invert(0.05, per_channel=True),

                   iaa.Add((-10, 10), per_channel=0.5),

                   iaa.AddElementwise((-40, 40)),

                   iaa.Multiply((0.5, 1.5)),

                   iaa.MultiplyElementwise((0.5, 1.5)),

                   iaa.ContrastNormalization((0.5, 2.0)),
                   iaa.imgcorruptlike.Saturate(severity=3),

               ],

               random_order=True
               )

], random_order=True)

path = './input/'
savedpath = './output/'

imglist = []
filelist = os.listdir(path)

for item in filelist:
    img = cv2.imread(path + item)

    imglist.append(img)

print('all the picture have been appent to imglist')

for count in range(10):
    images_aug = seq.augment_images(imglist)
    for index in range(len(images_aug)):
        filename = str(count) + str(index) + '.jpg'

        cv2.imwrite(savedpath + filename, images_aug[index])
        print('image of count%s index%s has been writen' % (count, index))

简易变换 试效果

test01.py


import cv2
from imgaug import augmenters as iaa
import os

seq = iaa.Sequential([
    iaa.MotionBlur(k=15),

])

path = './input/'
savedpath = './output_show/'

imglist = []
filelist = os.listdir(path)

for item in filelist:
    img = cv2.imread(path + item)

    imglist.append(img)

print('all the picture have been appent to imglist')

for count in range(1):
    images_aug = seq.augment_images(imglist)
    for index in range(len(images_aug)):

        filename = str(filelist[index])
        cv2.imwrite(savedpath + filename, images_aug[index])
        print('image of count%s index%s has been writen' % (count, index))

使用 模糊光雨雪雾

运动模糊+雨雪雾天气 2-3种
&
对比度 亮度 饱和度 选其一

my_augmentation.py

import cv2
from imgaug import augmenters as iaa
import os

seq = iaa.Sequential([

    iaa.SomeOf((2, 3),
               [
                   iaa.imgcorruptlike.MotionBlur(severity=(1, 2)),

                   iaa.imgcorruptlike.Fog(severity=1),

                   iaa.Rain(drop_size=(0.10, 0.15), speed=(0.1, 0.2)),
                   iaa.Snowflakes(flake_size=(0.1, 0.4), speed=(0.01, 0.03)),

                   iaa.SomeOf((1, 1),
                       [
                           iaa.imgaug.augmenters.contrast.LinearContrast((0.5, 2.0), per_channel=0.5),
                           iaa.imgcorruptlike.Brightness(severity=(1, 2)),
                           iaa.imgcorruptlike.Saturate(severity=(1, 3)),
                       ]
                   )
               ],

               random_order=True
               )
], random_order=True)

path = './input/'
savedpath = './output/'

imglist = []
filelist = os.listdir(path)

for item in filelist:
    img = cv2.imread(path + item)

    imglist.append(img)

print('all the picture have been appent to imglist')

for count in range(1):
    images_aug = seq.augment_images(imglist)
    for index in range(len(images_aug)):

        filename = str(filelist[index])
        cv2.imwrite(savedpath + filename, images_aug[index])
        print('image of count%s index%s has been writen' % (count, index))

else

对input里的原图像重命名:00001.jpg或者1.jpg

重命名00001.jpg

Rename0001.py


import os
import re
import sys

path = r"./input"
filelist = os.listdir(path)
filetype = '.jpg'
for file in filelist:
    print(file)
for file in filelist:
    Olddir = os.path.join(path, file)
    print(Olddir)
    if os.path.isdir(Olddir):
        continue

    filename = os.path.splitext(file)[0]
    filetype = os.path.splitext(file)[1]

    Newdir = os.path.join(path, filename.zfill(5) + filetype)
    os.rename(Olddir, Newdir)

重命名1.jpg

Rename1.py


import os

class BatchRename():

    def __init__(self):
        self.path = './input/'

    def rename(self):
        filelist = os.listdir(self.path)
        filelist.sort()
        total_num = len(filelist)
        i = 0
        for item in filelist:
            if item.endswith('.png'):
                src = os.path.join(self.path, item)
                dst = os.path.join(os.path.abspath(self.path), str(i) + '.png')

                try:
                    os.rename(src, dst)
                    print('converting %s to %s ...' % (src, dst))
                    i = i + 1
                except Exception as e:
                    print(e)
                    print('rename dir fail\r\n')

        print('total %d to rename & converted %d jpgs' % (total_num, i))

if __name__ == '__main__':
    demo = BatchRename()
    demo.rename()

效果图

input示例 00001.jpg

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
output示例 00001.jpg
Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

input示例 00005.jpg

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
output示例 00005.jpg

Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

Original: https://blog.csdn.net/zrg_hzr_1/article/details/120906981
Author: 国服最强貂蝉
Title: Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/633084/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球