常见Transform操作

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

writer = SummaryWriter("logs")
img_path = "dataset/train/ants/9715481_b3cb4114ff.jpg"  # 图片路径
img_PIL = Image.open(img_path)                          # 打开图片(PIL格式)
print("type(img_PIL)", type(img_PIL))    # <class 'PIL.JpegImagePlugin.JpegImageFile'>

# ToTensor
trans_totensor = transforms.ToTensor()   # 初始化ToTensor对象,不传入参数
tensor_img = trans_totensor(img_PIL)     # 传入参数,调用__call__函数(__call__函数需要np或pil类型的参数),获得tensor格式的图片
writer.add_image("Tensor_img", tensor_img)  # tensorboard显示tensor类型的图片
# print("tensor_img", tensor_img)

# Normalize
# print("tensor_img[0]:", tensor_img[0][0])
trans_norm = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]) # 三个通道各自指定mean, std(参数:mean, std)
img_norm = trans_norm(tensor_img)   # 对tensor类型的图形进行Normalize(参数:tensor类型的图片)
# writer.add_image("img_norm", img_norm)  # # tensorboard显示Normalize之后的图片
# print("norm_tensor_img[0]:", img_norm[0][0])

# Resize (2个参数)
print("img_PIL.size", img_PIL.size)
trans_resize = transforms.Resize((200, 400))    # 先初始化Resize对象,设定宽高
img_resize = trans_resize(img_PIL)              # 将需要的resize的图片作为参数传入实例,得到resize后的PIL格式图像
print("img_resize.size", img_resize.size)
img_resize = trans_totensor(img_resize)             # 利用前面已经初始化的totensor实例转为Tensor格式
writer.add_image("img_resize", img_resize, 0)

# Resize (1个参数)
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img_PIL)
writer.add_image("img_resize_2", img_resize_2, 1)

writer.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值