Pytorch读取照片
一、PIL
1.安装方式
conda install pillow
2.举例
from PIL import Image
import numpy as np
path='../dataset/train/hazy/8902.jpg'
img=Image.open(path)print(type(img))
img_arr=np.array(img)print(type(img_arr))print(img_arr.shape)
<class'PIL.PngImagePlugin.PngImageFile'><class'numpy.ndarray'>(344,550,3)
二、OpenCV
1.安装方式
conda install opencv
2.举例
在使用opencv读取图像时,需要注意其读取后的图像通道按照BGR的顺序排列而不是RGB
import cv2 as cv
img=cv.imread(path)print(type(img))print(img.shape)
img=cv.cvtColor(img,code=cv.COLOR_BGR2RGB)
<class'numpy.ndarray'>(344,550,3)
三、torchvision.io
1.举例
from torchvision.io import image
img=image.read_image(path)print(type(img))print(img.shape)
<class'torch.Tensor'>
torch.Size([3,344,550])
四、注意事项
在后续神经网络的搭建及训练中,我们要确保其中涉及到的图像数据为Tensor,并且Tensor的数据类型为浮点型。
1.PIL或者opencv读取后数据转换为Tensor
可将这两种方式读取的数据通过以下方式转换为Tensor:
from torchvision import transforms
img_tensor=transform.ToTensor()(img)
2.torch.io读取的数据为Tensor,但数据类型为ByteTensor
数据类型之间转换方式:
方式一:data=data.type(数据类型)
方式二:data=data.数据类型()
举例:
path='../dataset/train/hazy/8902.jpg'
img=image.read_image(path)print(img.type())print(img.shape)# torch.Size([3, 344, 550])# img=img.float()
img=img.type(torch.FloatTensor)print(img.type())
torch.ByteTensor
torch.Size([3,344,550])
torch.FloatTensor
本文转载自: https://blog.csdn.net/qq_43665602/article/details/126281393
版权归原作者 NorthSmile 所有, 如有侵权,请联系我们删除。
版权归原作者 NorthSmile 所有, 如有侵权,请联系我们删除。