具体细节看官方文档,写的比较清晰。下面仅为学习笔记。
1.安装
pip install -U albumentations
2.例子
#读取图片 image = cv2.imread("...") #转为BGR转为RGB image = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #定义pipeline transform = A.Compose([ A.CLAHE(), A.RandomRotate90(), A.Transpose(), A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.50, rotate_limit=45, p=.75), A.Blur(blur_limit=3), A.OpticalDistortion(), A.GridDistortion(), A.HueSaturationValue(), ]) #对图片进行变换 augmented_image = transform(image=image)['image'] #可视化图片 visualize(augmented_image)
3.注意点
- 输入的是numpy.ndarray的格式
- 3通道图片增强时候一定要是RGB的顺序,opencv读取的时候,要将BGR转为RGB
transform = A.Compose([ A.RandomCrop(width=256, height=256), A.HorizontalFlip(p=0.5), A.RandomBrightnessContrast(p=0.2), ])
- transform相当于一个类,输入参数(image=image)相当于实例化,返回一个字典,用键’image’获得图片。
每次使用的时候重新call transform ,这样每个实例化的对象参数都不一样。如果重复call transformed_image_1,那么增强的参数是一样的,每次结果就一样了。
transform = A.Compose([ A.RandomBrightnessContrast(brightness_limit=1, contrast_limit=1, p=1.0), ]) transformed_image_1 = transform(image=image)['image'] transformed_image_2 = transform(image=image)['image'] transformed_image_3 = transform(image=image)['image']