常见的transforms

输入 输出 作用

PIL             Image,open()

tensor        ToTensor()

warrays      cv.imread()

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

writer = SummaryWriter('logs')
img = Image.open("data/train/ants_image/6743948_2b8c096dda.jpg")   #图片路径
print(img)
#ToTensor的使用
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)             #括号里图片格式为PIL,输出格式为totensor格式
writer.add_image("ToTensor", img_tensor)
writer.close()
#Normalize的使用
print(img_tensor[0][0][0])            #图片必须是tensor格式
trans_norm = transforms.Normalize([1,4,2],[5,1,3])    #方框里的数字是更改图片值
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm,0)    # 命名图片,图片名称,步数
writer.close()
#Reslize(objecct)
print(img.size)
trans_resize = transforms.Resize((512,512))    #要求更改完成的图片大小
img_resize = trans_resize(img)                 #更改图片大小   图片只能是PIL格式
img_resize = trans_totensor(img_resize)        #图片由PIL格式改为totensor格式
writer.add_image("Resize",img_resize,0)
print(img_resize)
writer.close()
#Compose - resize-2
trans_resize_2 = transforms.Resize(512)      #更改图片大小   图片类型为PIL
trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
#图片类型由PIL转换为totensor 
# Compose()中的参数需要的是一个列表
  python中,列表的表示形式为[数据1,数据2……]
  在Compose中,数据需要的transforms类型
  所以得到Compose([transforms参数1,transforms参数2……])
img_resize_2 = trans_compose(img)            #括号里图片为PIL格式 与trans-compose输入一致
writer.add_image("Resize",img_resize_2,1)
writer.close()
#RandomCrop
trans_random = transforms.RandomCrop((100,120))     #裁剪大小 要小于原始图片
trans_compose_2 = transforms.Compose([trans_random,trans_totensor])    
for i in range(10):
    img_crop = trans_compose_2(img)
    writer.add_image("RandomCrop",img_crop,i)       #在原图片上随机裁剪10个规定大小的图片
writer.close()

只有totensor格式的图片才能在tensorboard中打开

在terminal终端输入

tensorboard --logdir=logs                          #等号后面是之前定义的名称

tensorboard --logdir=logs --port=6007     #避免使用人数太多在另一个窗口打开

总结

多关注输入和输出类型

多看官方文档

关注方法需要什么参数(输入类型可在官方文档里看,输出类型print(图片名称)或

print(type(图片名称)或debug)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值