pytorch中对图像的基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qxqsunshine/article/details/84109949

Pytorch提供了一个torchvision.transforms的包,可以使用transforms进行如下操作:

1、PIL.image / numpy. ndarray 与Tensor相互转化

2、进行归一化

3、对PIL.image进行裁剪、缩放等操作

一、PIL.image / numpy. ndarray 转化为Tensor,常常在训练模型阶段进行数据读取

Tensor转化为PIL.image / numpy. ndarray则使用在验证模型阶段的数据输出

使用transforms.ToTensor()将PIL.image / numpy. ndarray转化为torch.FloatTensor,再转化为【0,1.0】

使用transforms.ToPILImage将Tensor转化为PIL.image

二、对Tensor进行变换

class torchvision.transforms.Normalize(mean, std)

给定均值:(R,G,B);    方差:(R,G,B)   将会把Tensor正则化,即Normalized_image=(image-mean)/std

例如:把一个取值范围为【0,255】的PIL.Image  或者shape 为(H,W,C)的numpy.ndarray

转换成形状为【C,H,W】,其取值范围为【0,1.0】的troch.FloadTensor

代码实现:

data=np.random.randint(0,255,size=300)

img=data.reshape(10,10,3)

print(img.shape)

img_tensor=transforms.ToTensor()(img) #转换成Tensor

print(img_tensor)

(PS : 其实不太懂这个,到底怎么用)

猜你喜欢

转载自blog.csdn.net/qxqsunshine/article/details/84109949