pytorh基础知识和函数的学习:torchvision.transforms()

        transforms是 PyTorch 的 torchvision 库中用于图像处理的一个模块。它提供了一组工具,用于在图像数据集上进行常见的预处理和数据增强操作,以便更好地训练深度学习模型。以下是一些常用的torchvision.transforms转换:

基础图像转换:
transforms.ToTensor():
将PIL图像或NumPy数组转换为PyTorch的张量,并将像素值范围从[0, 255]缩放到[0, 1]。
transforms.ToPILImage(): 将PyTorch张量转换为PIL图像对象。
transforms.Normalize(mean, std): 对输入数据进行归一化处理,即将每个像素值减去均值(mean)然后除以标准差(std)。这有助于模型的收敛和性能提升。
transforms.Grayscale(num_output_channels=1): 将输入数据转换为灰度图像。


图像增强:
transforms.RandomHorizontalFlip(p=0.5):
随机水平翻转图像,p 是翻转的概率。
transforms.RandomVerticalFlip(p=0.5): 随机垂直翻转图像。
transforms.RandomRotation(degrees): 随机旋转图像,degrees 表示旋转的角度范围。
transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0): 随机改变图像的亮度、对比度、饱和度和色调。


几何变换:
transforms.Resize(size):
调整图像的大小,size 可以是一个整数(统一缩放到相同的尺寸)或一个 (height, width) 元组。
transforms.CenterCrop(size): 从图像中心裁剪出一个大小为 size 的区域。
transforms.RandomCrop(size): 从图像中随机裁剪出一个大小为 size 的区域。
transforms.Pad(padding): 对图像进行填充,padding 可以是一个整数(统一填充)或一个 (left, top, right, bottom) 元组。


图像转换为不同的格式:
transforms.Lambda(lambda x: ...):
允许用户自定义转换操作,通过传入一个函数来实现。


组合多个转换:
transforms.Compose(transforms_list):
将多个转换操作组合成一个转换操作,其中 transforms_list 是一个转换操作的列表,图像将按顺序应用这些操作。

demo:多个转换的组合

from PIL import Image
from torchvision import transforms

image = Image.open('demo.png')   # 读取图像文件

transforms = transforms.Compose([
    transforms.ToTensor(),   # 转换为张量
    transforms.Grayscale(1),   # 转换为灰度图
    transforms.ToPILImage()  # 转换为图像
    ])

show_image = transforms(image)  # 应用转换,将张量转换为图像
show_image.show()   # 显示图像

 张量和图像的双向转换

from PIL import Image
from torchvision import transforms

# 读取图像文件
image = Image.open('demo.png')   # 替换为你的图像路径

# 定义转换
transform = transforms.ToTensor()

# 应用转换,将图像转换为Tensor
image_tensor = transform(image)


# 定义一个转换,将Tensor转换为PIL图像
transform = transforms.ToPILImage()

# 使用转换函数
image = transform(image_tensor)

# 显示图像
image.show()


 

你可能感兴趣的:(机器视觉和人工智能学习,学习,pytorch)