使用Albumentations 对16位图像做增强
目录
本示例说明了如何增强16位TIFF图像。 在卫星图像中使用16位图像。 以下技术也可以应用于所有非8位图像(即24位图像,32位图像等)。
1、导入需要的库
-
import random
-
-
import cv2
-
from matplotlib import pyplot as plt
-
-
import albumentations as A
2、定义可视化函数
-
def visualize(image):
-
# Divide all values by 65535 so we can display the image using matplotlib
-
image = image / 65535
-
plt.figure(figsize=(10, 10))
-
plt.axis('off')
-
plt.imshow(image)
3、从磁盘读取16位TIFF映像
-
# The image is taken from http://www.brucelindbloom.com/index.html?ReferenceImages.html
-
# © Bruce Justin Lindbloom
-
image = cv2.imread('images/DeltaE_16bit_gamma2.2.tif', cv2.IMREAD_UNCHANGED)
-
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
-
visualize(image)
注意:OpenCV可能会错误地读取某些TIFF文件。 考虑使用tifffile地址:https://github.com/blink1073/tifffile
4、定义适用于16位TIFF图像的增强管道
Albumentations 支持两种描述像素强度的数据类型:-np.uint8,一个无符号的8位整数,可以定义0到255之间的值。-np.float32,一个单精度浮点数。对于np.float32输入,Albumentations期望该值在0.0到1.0之间。
Albumentations 有一个名为ToFloat的专用转换函数,该转换接受一个NumPy数组,其数据类型为np.uint16,np.uint32等(因此,任何使用大于255的值表示像素强度的数据类型)并将其转换为具有以下内容的NumPy数组np.float32数据类型。此外,此转换将所有输入值划分为[0.0,1.0]。默认情况下,如果输入数据类型为np.uint16,则将所有值除以65536,如果输入数据类型为np.uint32,则将所有值均除以4294967295.您可以在max_value参数中指定分频器。
非8位图像的增强流水线包括以下阶段:
- 首先,您使用ToFloat转换将输入图像转换为float32。转换后的图像中的所有值都将在[0.0,1.0]范围内。
- 然后,您使用所有必要的图像变换。
- 你可以选择在扩充管道的末尾使用FromFloat转换将图像转换回其原始数据类型。
-
transform = A.Compose([
-
A.ToFloat(max_value=65535.0),
-
-
A.RandomRotate90(),
-
A.Flip(),
-
A.OneOf([
-
A.MotionBlur(p=0.2),
-
A.MedianBlur(blur_limit=3, p=0.1),
-
A.Blur(blur_limit=3, p=0.1),
-
], p=0.2),
-
A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.2, rotate_limit=45, p=0.2),
-
A.OneOf([
-
A.OpticalDistortion(p=0.3),
-
A.GridDistortion(p=0.1),
-
], p=0.2),
-
A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=0.1, val_shift_limit=0.1, p=0.3),
-
-
A.FromFloat(max_value=65535.0),
-
])
我们固定随机种子是为了可视化目的,因此增强将始终产生相同的结果。 在真实的计算机视觉管道中,您不应该在对图像应用转换之前固定随机种子,因为在这种情况下,管道将始终输出相同的图像。 图像增强的目的是每次使用不同的变换。
-
random.seed(7)
-
augmented = transform(image=image)
-
visualize(augmented['image'])
文章来源: wanghao.blog.csdn.net,作者:AI浩,版权归原作者所有,如需转载,请联系作者。
原文链接:wanghao.blog.csdn.net/article/details/117076703
- 点赞
- 收藏
- 关注作者
评论(0)