pytorch的图像通道变换,torchvision.transforms.Compose,T.ToTensor

torchvision.transforms.ToTensor

显示的二值化图片如图所示,
在这里插入图片描述

将numpy的图片shape是hwc(高,宽,通道)格式的图片矩阵转换为chw格式的torch.tensor格式,本认为.ToTensor只是将变量处理为tensor,居然修改了shape

import numpy as np
from PIL import Image
from torchvision import transforms as T

img = Image.open('test.png').convert('1')
mask = np.array(img)
masks = np.zeros((mask.shape[0], mask.shape[1], 2), dtype=np.uint8)

masks[:, :, 0] = mask
masks[:, :, 1] = ~mask
print(masks.shape)
# transform_mask = T.ToTensor()
masks = T.ToTensor()(masks)
print(masks.shape)
'''两次打印的结果
(189, 116, 2)
torch.Size([2, 189, 116])
'''
# img.show()

torchvision.transforms.Compose

使用格式

from torchvision import transforms as T
# 下面这句代码指的是对数据图像的操作,先修改尺寸,再转换为torch.tensor
transform_x = T.Compose([操作命令,操作命令1...])

将对数据操作步骤进行连接;当然只是进行一步操作时没必要使用该方法

from torchvision import transforms as T
# 下面这句代码指的是对数据图像的操作,先修改尺寸,再转换为torch.tensor
transform_x = T.Compose([T.Resize((25, 256)), T.ToTensor()])	
img = transform_x(img)  # img本来是hwc格式的numpy的数组,转换为chw格式方便网络使用

一次操作中需要注意的,操作已经是一个对象

from torchvision import transforms as T

transform_img = T.Compose([T.ToTensor()])
masks = transform_img(img_np)  # 这两行的功能和下面一行的功能一样

masks = T.ToTensor()(masks) # 这种方式是正确的
masks = T.ToTensor(masks)# 这种是错误的写法,T.ToTensor()已经是一个对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值