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())
复制代码

 

posted @   海_纳百川  阅读(144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2023-02-28 ffmpeg执行时取消输出
2023-02-28 ffmpeg将多个图片合并为一个视频
本站总访问量8973557
 
点击右上角即可分享
微信分享提示