图像处理——读取为numpy,并且与tensor互相转换

图像处理——读取为numpy,并且与tensor互相转换

将图像读取为numpy

import cv2 as cv
#其中image_file为图像路径
im = cv.imread(image_file)
#opencv读取的图像是BGR,需要转为RGB
im = cv.cvtColor(im, cv.COLOR_BGR2RGB)

将numpy格式图像转换为tensor

im = numpy_to_torch(im)

此时,im.shape = torch.Size([1, 3, 356, 473])

将tensor格式图像转换为numpy

# 去掉tensor的第一个维度,降维
new_im = im[0]
# new_im.shape为torch.Size([3, 356, 473])
# 调整维度顺序
new_im = new_im.permute(1, 2, 0)
# new_im.shape为torch.Size([356, 473, 3])
# 此时图像可以用于显示
import matplotlib.pyplot as plt
# /255进行归一化,避免出现Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).错误
plt.imshow(new_im/255)

你可能感兴趣的:(菜鸟笔记,Ubuntu,linux,numpy,图像处理,opencv)