鱼C论坛

 找回密码
 立即注册
查看: 1786|回复: 1

[已解决]white_bkgd的实现机理

[复制链接]
发表于 2023-6-22 21:42:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
nerf 代码中有一段:
        if args.white_bkgd:
            images = images[...,:3]*images[...,-1:] + (1.-images[...,-1:])
其中image的形状为[20,378,504,3]
求大佬解释一下其中原理
最佳答案
2023-6-22 21:53:56
args.white_bkgd 可能是一个标志,用于决定是否对图像背景应用一个白色填充。这在处理具有透明度(alpha通道)的图像时特别有用。在这段代码中, images 可能是一个4D张量,包含一批具有透明度的图像。

在这段代码中:
images = images[...,:3]*images[...,-1:] + (1.-images[...,-1:])
images[...,:3] 代表取图像的RGB通道, images[...,-1:] 代表取图像的透明度通道。然后使用这两个通道进行计算以生成新的图像。

让我们分步解析这个公式:

1.  images[...,:3]*images[...,-1:] :这部分代码的作用是让图像的RGB通道与其对应的透明度通道相乘。透明度通道的值通常在0到1之间,0代表完全透明,1代表完全不透明。这意味着,如果一个像素的透明度为0,那么相乘后的结果也为0,即该像素在新图像中将完全透明。如果透明度为1,那么相乘后的结果就是原来的RGB值,即该像素在新图像中将保持原样。

2.  1.-images[...,-1:] :这部分代码的作用是计算图像的透明度通道的补值,即1减去透明度通道的值。这意味着,如果一个像素的透明度为0,那么这部分的结果为1,如果透明度为1,那么结果为0。

3. 最后,将上述两部分的结果相加。这意味着,对于完全透明的像素(透明度为0),它们在新图像中将被填充为白色(因为透明度通道的补值为1,加上RGB通道乘以透明度的结果为0,所以最终结果为1,即白色)。对于完全不透明的像素(透明度为1),它们在新图像中将保持原样(因为透明度通道的补值为0,加上RGB通道乘以透明度的结果为原来的RGB值,所以最终结果为原来的RGB值)。

因此,这段代码的作用是将图像的透明背景填充为白色,同时保留非透明部分的原始颜色。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-22 21:53:56 | 显示全部楼层    本楼为最佳答案   
args.white_bkgd 可能是一个标志,用于决定是否对图像背景应用一个白色填充。这在处理具有透明度(alpha通道)的图像时特别有用。在这段代码中, images 可能是一个4D张量,包含一批具有透明度的图像。

在这段代码中:
images = images[...,:3]*images[...,-1:] + (1.-images[...,-1:])
images[...,:3] 代表取图像的RGB通道, images[...,-1:] 代表取图像的透明度通道。然后使用这两个通道进行计算以生成新的图像。

让我们分步解析这个公式:

1.  images[...,:3]*images[...,-1:] :这部分代码的作用是让图像的RGB通道与其对应的透明度通道相乘。透明度通道的值通常在0到1之间,0代表完全透明,1代表完全不透明。这意味着,如果一个像素的透明度为0,那么相乘后的结果也为0,即该像素在新图像中将完全透明。如果透明度为1,那么相乘后的结果就是原来的RGB值,即该像素在新图像中将保持原样。

2.  1.-images[...,-1:] :这部分代码的作用是计算图像的透明度通道的补值,即1减去透明度通道的值。这意味着,如果一个像素的透明度为0,那么这部分的结果为1,如果透明度为1,那么结果为0。

3. 最后,将上述两部分的结果相加。这意味着,对于完全透明的像素(透明度为0),它们在新图像中将被填充为白色(因为透明度通道的补值为1,加上RGB通道乘以透明度的结果为0,所以最终结果为1,即白色)。对于完全不透明的像素(透明度为1),它们在新图像中将保持原样(因为透明度通道的补值为0,加上RGB通道乘以透明度的结果为原来的RGB值,所以最终结果为原来的RGB值)。

因此,这段代码的作用是将图像的透明背景填充为白色,同时保留非透明部分的原始颜色。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 17:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表