0


Pytorch读取照片的三种方式(包括但不限于)

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 所有, 如有侵权,请联系我们删除。

“Pytorch读取照片的三种方式(包括但不限于)”的评论:

还没有评论