imgaug的使用
程序员文章站
2024-03-19 22:18:34
...
1、安装
直接用pip install imgaug会报错,因为shapely没有找到,所以先要安装Shapely,直接pip也会报错,有可能会是:OSError: [WinError 126] 找不到指定的模块
解决办法是:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
从连接中找到Shaply,下载对应自己python的版本
之后在文件的目录下,pip install 对应版本的.whl文件
之后
pip install git+https://github.com/aleju/imgaug #从github安装
或者
pip install imgaug
安装就绪之后就可使用
在使用过程中,可能会碰到numpy中找不到某些模块,我在使用时事bit_generate模块找不到,np.random.bit_generator,但是查看了numpy的代码,确实有这个模块,找不到问题所在,可能就是版本不对应,不太想在这里浪费太多时间,于是就
pip uninstall numpy
然后重新装了numpy就可以了。
2、使用
imgaug的说明文档:
https://imgaug.readthedocs.io/en/latest/source/examples_bounding_boxes.html
#标准用例
from imgaug import augmenters as iaa
seq = iaa.Sequential([
iaa.Crop(px=(0, 16)), # 从图像的每条边随机裁剪0-16个像素
iaa.Fliplr(0.5), # 将50%的图像进行水平翻转
iaa.GaussianBlur(sigma=(0, 3.0)) # sigma0-3.0的高斯模糊
])
#一个batch读取1000张图片
for batch_idx in range(1000):
# images格式是4D numpy array : (N, height, width, channels)(图像个数、高、宽、通道数)
# 或者是3D numpy arrays: (height, width, channels).
# 灰度图是 (height, width, 1) .
# 所有images 数据必须是uint8类型,大小在0到255之间
images = load_batch(batch_idx) #加载图片
images_aug = seq(images=images) #对图片进行增强
#train_on_images(images_aug) #其他的一些对增强后的图片操作
#裁剪、仿射、模糊、噪声等处理
import numpy as np
import imgaug as ia
import imgaug.augmenters as iaa
import imageio
import cv2
ia.seed(1)
# 示例是array (32, 64, 64, 3) uint8类型的.
#ia.quokka:以numpy数组的形式返回quokka(无尾熊)的图像。
images = np.array(
[ia.quokka(size=(64, 64)) for _ in range(32)],
dtype=np.uint8
)
seq = iaa.Sequential([
iaa.Fliplr(0.5), # 水平翻转
iaa.Crop(percent=(0, 0.1)), # 随机裁剪,裁剪的大小是0-10%
# 对50%的图像进行高斯模糊,sigma值为0-0.5
iaa.Sometimes(0.5,
iaa.GaussianBlur(sigma=(0, 0.5))
),
# 增强或减弱每张图的对比度
iaa.ContrastNormalization((0.75, 1.5)),
# 增加高斯噪声
# 对50%的图像,我们对每个像素进行一次噪声采样
# 对剩余的50%的图像进行每个像素和通道的noise,这样的操作会改变每个像素的颜色(不仅仅是亮度)
iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.05*255), per_channel=0.5),
# 将一些图像调亮,一些图像调暗
# 对20%的图像,我们对每个通道multiply采样一次
iaa.Multiply((0.8, 1.2), per_channel=0.2),
# 将仿射变换应用于每个图像缩放、平移/移动、旋转和剪切。
iaa.Affine(
scale={"x": (0.8, 1.2), "y": (0.8, 1.2)},
translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)},
rotate=(-25, 25),
shear=(-8, 8)
)
], random_order=True) # 按随机顺序进行增强
images_aug = seq(images=images)
上一篇: imgaug的使用(二)