数据格式转化,PyTorch就是救星!
5. RandomRotation
此变换将图像随机旋转一个角度。以度为单位的角度可以作为参数“degrees”的输入。
transform = transforms.Compose([transforms.RandomRotation(degrees=180)])
tensor_img = transform(image)
tensor_img
查看上述代码的转换!
旋转图像
6. Grayscale
此转换将把原始RGB图像更改为灰度(即黑白)。你可以提供你想要多少个通道作为参数“num_output_channels”的输入。
transform = transforms.Compose([transforms.Grayscale(num_output_channels=1)])
tensor_img = transform(image)
tensor_img
输出如下所示。
7. GaussianBlur
在这里,图像将被随机选择的高斯模糊所模糊。必须提供参数kernel_size。
transform = transforms.Compose([transforms.GaussianBlur(kernel_size=501)])
tensor_img = transform(image)
tensor_img
8. RandomApply
此转换将随机应用给定的转换列表。
transform = transforms.RandomApply([transforms.RandomSizedCrop(200),transforms.RandomHorizontalFlip()],p=0.6)
tensor_img = transform(image)
9. Compose
在本文中,我们一直在使用Compose() 。为了清楚地定义它,它将几个变换组合在一起。
transforms.Compose([transforms.Grayscale(1),transforms.CenterCrop(10), transforms.ToTensor()])
一些转换将以所需格式处理数据。然而,对于图像数据增强,则需要灰度、随机水平翻转和随机旋转等变换。
10. 函数变换
在我们学习到的所有变换中,你可以注意到参数是随机生成的。这通常足以进行数据扩充。但是,有时你可能需要对转换管道进行更细粒度的控制。在这种情况下,可以使用函数变换。在这里,你可以指定或生成所有参数。一个附加的优点是,一个特定定义的函数变换可以应用于多个图像。
可以从torchvision.transforms.functional访问所有函数转换。
现在让我们深入了解PyTorch提供的不同功能转换。
A) 调整亮度:adjust_brightness
这主要是调整图像的亮度。它以PyTorch张量的形式将图像作为输入。它还有一个重要参数“亮度系数”。这将表示如何实际更改亮度。
例如,如果值为1,则会得到与输入相同的图像。如果该值大于1,将获得更亮的图像。如果它小于1,你会得到一个更暗的图像。可以相应地传递浮点值。返回的图像将是张量或PIL图像。
new_img = transforms.functional.adjust_brightness(image,brightness_factor=2)
new_img
B) 调整对比度:adjust_contrast
上面我们看到了如何调整亮度,这里我们有另一个用于调整图像对比度的变换。它需要两个输入参数:张量形式的图像和“对比度因子”。第二个参数将输入一个浮点值,它将告诉你如何调整对比度。但不能是负的。
new_img = transforms.functional.adjust_contrast(image,contrast_factor=3.8)
new_img
C) 调整色调:adjust_hue
色调是图像的一个重要属性。Pytorch允许你通过transforms.functional.adjust_hue进行调整。
想知道它是怎么工作的吗?
首先,图像将被转换成HSV(色调,饱和度,值)形式。将根据我们的参数在H通道中进行更改。更改后,图像将转换为其原始形式。重要的参数是“色调因子”。它可以是[-0.5.0.5]范围内的浮点值。尝试实现下面的示例。
new_img = transforms.functional.adjust_hue(image,hue_factor=0.3)
new_img
D) 调整饱和度:adjust_saturation
这是为了调整输入图像的颜色饱和度。与上述情况类似,我们有一个“饱和度系数”参数,它决定了饱和度的变化方式。这将输入一个浮点值。如果将其设置为0,则会得到黑白图像。
new_img = transforms.functional.adjust_saturation(image,saturation_factor=6)
输出如下图所示!
E) 调整锐度:adjust_sharpness
你可以通过此变换调整图像的清晰度。它采用浮点值作为“锐度系数”参数的输入。此值可以是除负值以外的任何值。
在下面的代码中,我使用了10的锐度因子,这意味着变换后的图像将是原始图像的10倍锐度。
new_img = transforms.functional.adjust_sharpness(image,sharpness_factor=10)
检查输出!
F) 均衡:equalize
这种变换将均衡图像的直方图。
怎么会这样?
它将对输入应用非线性映射,从而在输出中创建灰度值的均匀分布。
new_img = transforms.functional.equalize(image)
这些是一些重要的函数转换,将有助于在图像预处理阶段。它们也可以组合使用。
最新活动更多
-
即日-12.26立即报名>>> 【在线会议】村田用于AR/VR设计开发解决方案
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
即日-1.14火热报名中>> OFweek2025中国智造CIO在线峰会
-
即日-1.24立即参与>>> 【限时免费】安森美:Treo 平台带来出色的精密模拟
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 【线下会议】OFweek 2024(第九届)物联网产业大会
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论