imgaug库
- 简介
- 安装
- Overview
* - 特效
- Project 结构
- 程序
* - 参考的源代码(来源于网络)
- 简易变换 试效果
- 使用 模糊光雨雪雾
- else
* - 重命名00001.jpg
- 重命名1.jpg
- 效果图
简介
imgaug:机器学习实验中的图像增强库,特别是卷积神经网络。支持以多种不同方式增强图像、关键点/地标、边界框、热图和分割图。
安装
在anaconda prompt里进行
pip install imgaug
看了几篇文章,出错的话可以先安装依赖库shapely
Overview
特效
; Project 结构
程序
图片放入input
; 参考的源代码(来源于网络)
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
output示例 00001.jpg
input示例 00005.jpg
output示例 00005.jpg
Original: https://blog.csdn.net/zrg_hzr_1/article/details/120906981
Author: 国服最强貂蝉
Title: Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/633084/
转载文章受原作者版权保护。转载请注明原作者出处!