P9:Transform的使用
#P9:Transforms的使用
import cv2
from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
#python中的用法 ——》tensor数据类型
#通过Transform.tensor去看两个问题
#1.transfroms该如何使用看(python)
#答:transform.py文件相当于一个工具箱,里面装有各种各样的工具(Totensor,Resize等),当需要使用时,创建一个具体的工具,例:tool = transforms.ToTensor(),
# 当一张图片输入后,使用这个工具进行输入和输出(需要注意各种各样的工具需要什么样的输入参数(ctrl+p查看))
#2.为什么我们需要tensor数据类型
#答:tensor数据类型中有神经网络需要的相关参数格式
#1.初始化图片路径
img_path = "dataset/train/ants/0013035.jpg"
cv_img = cv2.imread(img_path)
#2.打开图片,将图片变量赋值给img_PIL(图片格式为PIL类型)
img = Image.open(img_path)
#3.从transform.py这个工具箱中取出transforms.ToTensor这个工具,并具体化到tensor_trans这个工具
tensor_trans = transforms.ToTensor()
#4.使用这个工具转化图片格式
tensor_img = tensor_trans(img)
print(tensor_img)
writer = SummaryWriter("p9logs")
writer.add_image("Tensor_image",tensor_img)
writer.close()
print("已完成")
P10:常见的transforms
# 常见的transforms
import PIL.ImageShow
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
#载入PIL格式图片
img = Image.open("images/信仰.jpg")
print(img)
#创建日志
writer = SummaryWriter("p10logs")
# ToTensor 将一个PIL或numpy格式的图片转化为totensor格式的图片
trans_totensor = transforms.ToTensor()#将Transform.py工具箱中的ToTensor模具,刻出trans_totensor实例化工具,并使用这个工具,将PIL格式的img图片转化为tensor格式
img_tensor = trans_totensor(img)#
writer.add_image("ToTensor", img_tensor)
print("ToTensor**************************************************************************************************已完成")
# Normalize 归一化,改变图片的色调
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])#将Transform.py工具箱中的Normalize模具,刻出trans_norm实例化工具,并使用这个工具,将图片进行归一化
img_norm = trans_norm(img_tensor)
writer.add_image("Normalize", img_norm)
print(img_norm[0][0][0])
print("Normalize**************************************************************************************************已完成")
# Resize 重塑图片的大小
print(img.size)
trans_resize = transforms.Resize((512,512))#将Transform.py工具箱中的Normalize模具,刻出trans_norm实例化工具,并使用这个工具,修改图片的大小
# img PIL > resize > img_resize PIl
img_resize = trans_resize(img)
print(img_resize)
# PIL.ImageShow.show(img_resize)
# img img_resize PIL >totensor > img_resize tensor
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize)
print(img_resize)
print("Resize**************************************************************************************************已完成")
# Compose--resize-2 Transform.py工具箱工具组合
trans_resize_2 = transforms.Resize((512,512))
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
# PIL > trans_resize_2 >PIL(resize_2) > trans_totensor > tensor
img_resize_2 = trans_compose(img)
writer.add_image("Resize_2", img_resize_2, 1)
print("Compose**************************************************************************************************已完成")
# RandomCrop
# RandomCrop )#将Transform.py工具箱中的RandomCrop模具,刻出trans_random实例化工具,并使用这个工具,随即裁剪图片
trans_random = transforms.RandomCrop(512)
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)
print("RandomCrop**************************************************************************************************已完成")
writer.close()
标签:PIL,tensor,img,记录,23,2023.3,print,trans,resize From: https://www.cnblogs.com/zxpython/p/17248264.html