目录
Transforms的使用
1. Transforms的框架
读取图片的两种类型:
(1)PIL型
from PIL import Image
(2)numpy型
import cv2
transforms读取图像:
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
#python的用法-》tensor数据集
# 通过 transforms.ToTensor去看两个问题
# 1.transforms如何使用
# 2.为什么需要tensor数据类型
# 绝对路径D:\pycharm\pycharmproject\pythonProject\dataset\train\ants_image\0013035.jpg
# 相对路径dataset/train/ants_image/0013035.jpg
img_path="dataset/train/ants_image/0013035.jpg"
img=Image.open(img_path)
writer=SummaryWriter("logs")
# 1.transforms如何使用
#创建具体的工具:transforms.ToTensor()-->实用工具,输出:result=tool(input)
tensor_trans=transforms.ToTensor() #实例化对象
#直接调用对象的__call__方法,把实例好的对象当作方法/函数,直接加上()就可以调用
tensor_img=tensor_trans(img)
# print(tensor_img)
writer.add_image("Tensor_img",tensor_img)
writer.close()
运行结果:
2.常见的Transforms
输入 | PIL | Image.open() |
输出 | tensor | ToTensor() |
作用 | narrays | cv.imread() |
python中__call__的用法
class Person:
def __call__(self, name):
print("__call__"+"hello"+name)
def hell(self,name):
print("hello"+name)
person=Person()
person("zhangsan")
person.hell("lisi")
运行结果:
ToTensor的使用
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer=SummaryWriter("logs")
img=Image.open("images/text_img.jpg")
print(img)
#ToTensor的使用
trans_totensor=transforms.ToTensor()
img_tensor=trans_totensor(img)
writer.add_image("ToTensor",img_tensor)
writer.close()
归一化Normalize
Normalize 归一化 output[channel] = (input[channel] - mean[channel]) / std[channel]
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer=SummaryWriter("logs")
img=Image.open("images/text_img.jpg")
print(img)
#ToTensor的使用
trans_totensor=transforms.ToTensor()
img_tensor=trans_totensor(img)
writer.add_image("ToTensor",img_tensor)
#Normalize 归一化
# output[channel] = (input[channel] - mean[channel]) / std[channel]
#(input-0.5)/0.5=2*input-1
trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm)
writer.close()
运行结果:
通过改变global_step的值来实现图片的滚动切换