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
文章出处登录后可见!
已经登录?立即刷新