如何将深度学习的float32图像转为Unit8格式以方便cv2使用

在使用Pyside2中的 QImage处理深度学习模型生成的图片时,需要将float32的图像转为Unit8格式,再使用cv2处理。
一开始使用网上的其他教程,如下:

		 # 模型生成
		G_recon = G(self.content, True)
		# 将(1,3,256,256)尺寸的转为(256,256,3)
        G_recon = ((G_recon[0].cpu().detach().numpy().transpose(1, 2, 0) + 1) / 2)  
        G_recon = (G_recon) * 255.0  # 将图像数据扩展到[0,255]
        G_recon = np.array(G_recon, dtype='uint8')  # 改为Unit8
        G_recon = cv2.cvtColor(G_recon, cv2.COLOR_BGR2RGB)
        cv2.imwrite('ppp.png', G_recon) # 用cv2保存图像

但是在Lable上展示的的图像跟预期不一样,如下图:
在这里插入图片描述

但是将上面代码中的
G_recon = cv2.cvtColor(G_recon, cv2.COLOR_BGR2RGB)
改为

G_recon = cv2.cvtColor(G_recon, cv2.COLOR_RGBA2RGB)

就能正常显示:
在这里插入图片描述

RGBA格式:
rgba() 函数使用红®、绿(G)、蓝(B)、透明度(A)的叠加来生成各式各样的颜色。

RGBA 即红色、绿色、蓝色、透明度(英语:Red, Green, Blue、Alpha)。

红色(R)0 到 255 间的整数,代表颜色中的红色成分。。
绿色(G)0 到 255 间的整数,代表颜色中的绿色成分。
蓝色(B)0 到 255 间的整数,代表颜色中的蓝色成分。
透明度(A)取值 0~1 之间, 代表透明度。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值