transforms是pytorch中提供的一个图像预处理模块,可以方便地对图像进行各种操作。

from torchvision import transforms

通过ctrl加点击的方式,查看transforms源代码。

alt+7快捷键查看结构。

 1,ToTensor方法

将PIL Image 或numpy.ndarray转换为tensor数据类型image

 2,Normalize方法

用mean数据和standard数据将tensor image归一化处理,结果返回一个tensor image

 3,Resize方法

将图片调整到指定大小

 4,Copose方法

将一系列transforms方法打包起来,一起执行

 5,RandomCrop 方法

随机裁剪指定大小的图片

 代码示例:

from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter

image_path='images/pytorch.jpeg'
img=Image.open(image_path)
img=img.convert('RGB')
print(type(img))

writer=SummaryWriter('logs')

# ToTensor 将PIL Image or numpy.ndarray 转换为 tensor数据类型
trans_tensor=transforms.ToTensor()
tensor_img=trans_tensor(img)

print(tensor_img)

writer.add_image('tensor_image',tensor_img,1)

#Normalize归一化
print(tensor_img[0][0][0])
trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
norm_img=trans_norm(tensor_img)
print(norm_img[0][0][0])
writer.add_image('norm_img',norm_img,1)

# Resize 调整大小
trans_resize=transforms.Resize((512,512))
resize_img=trans_resize(img)
print(type(resize_img))
resize_img=trans_tensor(resize_img)
writer.add_image('resize_img',resize_img,1)

#Compose 一系列transforms方法包装起来
trans_compose=transforms.Compose([trans_resize,trans_tensor])
compose_img=trans_compose(img)
writer.add_image('compose_img',compose_img,1)

#RandomCrop 随机裁剪
trans_crop=transforms.RandomCrop((512,512))
trans_crop2=transforms.Compose([trans_crop,trans_tensor])
for i in range(10):
    crop_img = trans_crop2(img)
    writer.add_image('crop_img',crop_img,i)

writer.close()

 

 posted on 2024-03-07 23:27  会飞的金鱼  阅读(37)  评论(0)    收藏  举报