学习pytorch过程中,发现当cv图片经过ToTensor后颜色发生变化,黄色会变成蓝色,蓝色会变成黄色


这是由于cv2.imread读取图片的时候,是通过BGR形式读取图片,而ToTensor默认以RGB模式,这样转变后会导致颜色完全相反。
正确做法应当是将imread之后的图片修改成RGB模式:
img=cv2.imread(img_path)
img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#格式转换,
writer = SummaryWriter("logs")
tensor_trans=transforms.ToTensor()
tensor_img=tensor_trans(img_rgb)
writer.add_image("bee", tensor_img,3,dataformats="CHW")
这样最后得到的图片颜色就是正常的
在学习PyTorch时,注意到图片经过ToTensor处理后颜色反转,原因为cv2.imread读取的图片格式为BGR,而ToTensor期望的是RGB。解决方法是使用cv2.cvtColor将BGR图像转换为RGB,然后进行Tensor转换,以保持颜色正确。这样可以避免颜色混乱,确保图像在日志中正常显示。
884

被折叠的 条评论
为什么被折叠?



