图片的读取
from PIL import Image
import numpy as np
import torch
def image_read(photo_path,hudu=None,tensor=None):
'''
:param photo_path: 图片路径
:param hudu: 是否转化为灰度图
:param tensor: 是否转化为tensor
:return: 图片的数字形式 c,w,h
'''
img = Image.open(photo_path)#将图片读取为图片类
if hudu is True:
img = img.convert("L")#将图片转化为单通道灰度图
img = np.array(img)#将图片转化为数组
if tensor is True:
img = torch.unsqueeze(torch.tensor(img),dim=0)#将numpy转化为tensor
else:
img = np.expand_dims(img,axis=0)
else:
if tensor is True:
img = np.array(img).transpose((2,0,1))#将图片转化为数组,并且将通道数放在第一位
img = torch.tensor(img)#将numpy转化为tensor
else:
img = np.array(img).transpose((2, 0, 1)) # 将图片转化为数组,并且将通道数放在第一位
return img
图片的展示
from PIL import Image
import numpy as np
import torch
def show_photo(photo_path=None,data=None):
'''
:param path: 图片路径
:param data:图片的tensor/array都可以,输入形式c,w,h
:return: None
'''
if photo_path:
img = Image.open(photo_path) # 将图片读取为图片类
elif data is not None:
array = np.array(data).transpose((1,2,0))
array = np.squeeze(array)
img = Image.fromarray(np.uint8(array))
img.show(img)