from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
# 创建一个 TensorBoard 日志记录器
writer = SummaryWriter("Logs")
# 打开图像
img = Image.open("data/train/ants_image/0013035.jpg")
print(img) # 打印图像信息
# 将图像转换为张量
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
writer.add_image("ToTensor", img_tensor) # 将张量图像添加到 TensorBoard
# 打印张量的第一个像素值
print(img_tensor[0][0][0])
# 归一化转换
trans_norm = transforms.Normalize([6, 3, 2], [9, 3, 5])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0]) # 打印归一化后的第一个像素值
writer.add_image("Normalize", img_norm, 1) # 将归一化图像添加到 TensorBoard
# 打印原始图像大小
print(img.size)
# 调整图像大小
trans_resize = transforms.Resize((512, 512))
img_resize = trans_resize(img) # 将 PIL 图像调整大小
img_resize = tensor_trans(img_resize) # 将调整后的图像转换为张量
writer.add_image("Resize", img_resize, 0) # 将调整大小的图像添加到 TensorBoard
print(img_resize) # 打印调整大小后的张量
# 使用 Compose 进行多步转换
trans_resize_2 = transforms.Resize(512) # 调整图像的短边到 512
trans_compose = transforms.Compose([trans_resize_2, tensor_trans]) # 组合转换
img_resize_2 = trans_compose(img) # 应用组合转换
writer.add_image("Resize", img_resize_2, 1) # 将组合转换后的图像添加到 TensorBoard
# 关闭 TensorBoard 日志记录器
writer.close()