https://imgaug.readthedocs.io/en/latest/source/overview_of_augmenters.html
Sequential:列出的包含其他增强器的增强器按顺序和随机的应用。
SomeOf:列出的增强器只将其中的子部分应用到图像。
##列出的包含其他增强器的增强器按顺序和随机的应用。 #按预定的顺序进行应用增强器 import imgaug.augmenters as iaa ##建立一个名为aug的实例,定义增强方法,用于增强 aug = iaa.Sequential([ iaa.Affine(translate_px={"x":-40}), iaa.AdditiveGaussianNoise(scale=0.1*255) ]) #按随机的顺序进行应用增强器(请注意,随机采样要应用的增强器,然后对批内的所有图像应用相同的采样增强器。) import imgaug.augmenters as iaa aug = iaa.Sequential([ iaa.Affine(translate_px={"x":-40}), iaa.AdditiveGaussianNoise(scale=0.1*255) ],random_order=True) ##对每幅图像应用四个增强器中的两个。 aug = iaa.SomeOf(2, [ iaa.Affine(rotate=45), iaa.AdditiveGaussianNoise(scale=0.2*255), iaa.Add(50, per_channel=True), iaa.Sharpen(alpha=0.5) ]) #每幅图像应用0-None个增强器(需要给出None,或自动计算出增强器的数目<max>) aug = iaa.SomeOf((0, None), [ iaa.Affine(rotate=45), iaa.AdditiveGaussianNoise(scale=0.2*255), iaa.Add(50, per_channel=True), iaa.Sharpen(alpha=0.5) ]) #选择四个增强器中的两个并随机的应用在每一幅图像。 aug = iaa.SomeOf(2, [ iaa.Affine(rotate=45), iaa.AdditiveGaussianNoise(scale=0.2*255), iaa.Add(50, per_channel=True), iaa.Sharpen(alpha=0.5) ], random_order=True)
Fliplr:水平翻转。Flipud:垂直翻转。
概率的默认值为0.0。因此,要翻转所有输入图像,请使用Fliplr(1.0),而不仅仅是Fliplr()。
import imgaug.augmenters as iaa #水平翻转转50%的图像 aug = iaa.Fliplr(0.5) #垂直翻转50%的图像 aug = iaa.Flipud(0.5)Resize:增强器将图像大小调整到指定的高度和宽度。
Crop:裁剪图像,即删除图像两侧的行/列像素。
Pad:衬垫图像,即向它们添加行/列像素。
import imgaug.augmenters as iaa ##Resize #将每幅图像调整为高度=32和宽度=64: aug = iaa.Resize({"height": 32, "width": 64}) #调整每幅图像的大小,使其高度=32,并保持宽度的高宽比相同: aug = iaa.Resize({"height": 32, "width": "keep-aspect-ratio"}) #将每幅图像的大小调整到其原始大小的50%至100%之间: aug = iaa.Resize((0.5, 1.0)) #将图像的高度调整到其原始大小的50%-75%,宽度调整到16px、32px、64px: aug = iaa.Resize({"height": (0.5, 0.75), "width": [16, 32, 64]}) ##CropAndPad #该增强器自动调整图像大小,使其在增强后恢复到原来的大小。 #若要禁用此操作,请添加参数REVERSILE=FALSE #相对于原始图像,每边裁剪和填充不超过10%(负值代表裁剪,正值表示填充) aug = iaa.CropAndPad(percent=(-0.25, 0.25)) #每边垫0%到20%。这会给两边增加新的像素。这些像素要么用一个常量值(模式=常数)填充, #要么用最近边缘上的值填充(模式=边缘)。如果使用常量值,它将是0到128之间的随机值(每幅图像采样)。 aug = iaa.CropAndPad( percent=(0, 0.2), pad_mode=["constant", "edge"], pad_cval=(0, 128) ) #将每幅图像的顶部用0至30像素填充,右侧为0-10 px,底部为0-30 px,左侧为0-10 px。 #使用任何可用模式来填充新像素,如果模式是常量,则使用0到128之间的常量值。 aug = iaa.CropAndPad( px=((0, 30), (0, 10), (0, 30), (0, 10)), pad_mode=ia.ALL, pad_cval=(0, 128) ) #裁剪/填充每一边不超过10px,每幅图像该值被采样一次,然后用于所有的边(即:所有的边都会获得或丢失相同数量的行和列) aug = iaa.CropAndPad( px=(-10, 10), sample_independently=False )
Affine:增强器对每幅图像应用仿射变换。
import imgaug.augmenters as iaa #缩放图像的值为其原始大小的50%至150%: aug = iaa.Affine(scale=(0.5, 1.5)) #缩放图像的值为其原始大小的50%至150%,但在每个轴上独立地进行此操作(即每幅图像采样两个值): aug = iaa.Affine(scale={"x": (0.5, 1.5), "y": (0.5, 1.5)}) #将图像在x轴和y轴上分别平移为-20%至+20%: aug = iaa.Affine(translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)}) #独立地在x轴和y轴上将图像平移-20到20像素。 aug = iaa.Affine(translate_px={"x": (-20, 20), "y": (-20, 20)}) #将图像旋转45到45度 aug = iaa.Affine(rotate=(-45, 45)) #剪切图像-16至16度 aug = iaa.Affine(shear=(-16, 16)) #在应用仿射变换时,通常会生成新的像素,例如,在向左平移时,在右边生成像素。 #存在各种模式来设置如何填充这些像素。下面的代码显示了一个使用所有模式的示例, #每个图像随机抽样。如果模式是常数(用一个常量填充所有模式),则使用0到255之间的随机亮度: aug = iaa.Affine(translate_percent={"x": -0.20}, mode=ia.ALL, cval=(0, 255))
Sharpen:锐化图像,并用用原始图像覆盖。
import imgaug.augmenters as iaa #亮度在0.75-2.0之间,alpha在0.0-1.0之间的效果 aug = iaa.Sharpen(alpha=(0.0, 1.0), lightness=(0.75, 2.0))AdditiveGaussianNoise:将高斯分布元素中采样的噪声添加到图像中。
Add:向图像中的所有像素添加一个值。
Multiply:将图像中的所有像素与特定值相乘,从而使图像更暗或更亮。
ContrastNormalization:改变图像对比度的增强器。
import imgaug.augmenters as iaa #将高斯噪声加到图像中,每个像素从正态分布N(0,s)中采样一次,其中s从每幅图像采样, #变化在0到0.2*255之间。 aug = iaa.AdditiveGaussianNoise(scale=(0, 0.2*255)) #将高斯噪声加到图像中,每个像素从正态分布N(0,0.05*255)中采样一次。 aug = iaa.AdditiveGaussianNoise(scale=0.2*255) #添加拉普拉斯噪声到图像中,信道从N(0,0.2*255)中采样。(即:每个像素有三个独立样本) aug = iaa.AdditiveGaussianNoise(scale=0.2*255, per_channel=True) ##向图像中的所有像素添加一个值。 #向图像中添加-40到40之间的随机值,每幅图像的每个值采样一次,然后对所有像素进行相同的采样。 aug = iaa.Add((-40, 40)) #向图像中添加-40到40之间的随机值。在50%的图像中,每个通道的值不同(3个采样值)。 #在其他50%的图像中,所有通道的值相同(这个值应该是所加的随机值): aug = iaa.Add((-40, 40), per_channel=0.5) ##将图像中的所有像素与特定值相乘,从而使图像更暗或更亮。 #用0.5到1.5之间的随机值乘以每幅图像。 aug = iaa.Multiply((0.5, 1.5)) #以0.5至1.5之间的随机值将50%的图像相乘,其余50%的图像按信道方向相乘, #即每个通道独立地抽样一个乘法器。 aug = iaa.Multiply((0.5, 1.5), per_channel=0.5) ##改变图像对比度的增强器。 #每幅图像随机抽样,将对比度标准化为0.5至1.5倍。 aug = iaa.ContrastNormalization((0.5, 1.5)) #随机抽样每幅图像,将对比度标准化为0.5至1.5倍.并对50%的图像的每个通道进行独立采样。 aug = iaa.ContrastNormalization((0.5, 1.5), per_channel=0.5)