opencv读取图像和pillow读取图像的转为torch.tensor的区别
问题描述:
有一个git源码是使用pillow读取图像,然后转为tensor后进行resize操作,但是我现在接收到的图像数据是opencv格式的,最简单的操作是我直接将opencv的格式转为pil格式,然后继续下一步就行。但是这样就多了一个数据转换,所以不想这么干,简介的步骤就是将opencv的numpy格式的数据直接转为tensor,然后进行resize。
基于以上需求,在这个过程中,主要问题花在数据对其上,就是需要对比以下转换的数据是否一致
import cv2 import torch from PIL import Image from torchvision import transforms #pil加载的图像默认是whc,rgb image = Image.open("20191101135203728.jpg") #cv2加载的图像默认是hwc,bgr img_cv = cv2.imread("20191101135203728.jpg") # 必须进行转换才行 img_cv = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB).transpose(2,0,1) #把两个转换到tensor进行测试 resize_func_tensor = transforms.functional.pil_to_tensor(image) cp_tensor = torch.tensor(img_cv) absolute_difference = torch.abs(resize_func_tensor - cp_tensor).sum() #测试结果为0 print("两种方式的输出结果的绝对差之和:", absolute_difference.item())
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/18039027,如有侵权联系删除

浙公网安备 33010602011771号