数字图像入门 图像处理与透明层
夏昆冈 于 2011.08.20 13:10:50 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:09.60/48

将多张图像合成一张,这种操作非常常见,例如将某人的照片放到另一个场景当中,网络上流行的换脸等等,哪怕就是个图片加个Logo也是图像合成的一种,这些图像是如何合成的呢?我们用一个实例来说明。

  • 我们用Soomal的标志作为前景图像。

  • 使用一张浩瀚星系的模拟图作为背景图像。

  • 合成得到的结果就是Soomal的标志出现星系背景的图片之上。为什么会出现这样的结果呢?

    在合成时,有一个非常重要的元素会被忽略,它就是透明层,也叫蒙板、Mask层、Alpha层等等,它可以单独作为一个图像存在,也可以作为一个“层”包含在图像当中,例如PNG、TGA等格式就支持存储透明层。它如何存在并不重要,重要的是它会如何影响合成的结果,有一点很重要的是,透明层一定是灰度的图像。

  • 参与此例的合成的透明层如上图,黑底,白色的Logo,与之对应合成关系是,黑色部分为透明,白色部分为不透明。得到上面的结果就很容易理解了。如果我们把透明层的黑白关系对调一下会怎样?

  • 得到的结果就是这样,星系背景图案只会在Logo的区域内出现,而且Logo原有的图案信息丢失。

  • 如果把透明层的Logo部分修改成渐变会出现什么样的变化?

  • 结果是Soomal的标志产生了透明渐变,并合成到背景当中。

    实例演示到这里,透明层与合成结果的关系应该比较清晰了。前景图像的是如何合成到背景当中,其实由透明层决定。

    透明层为灰度图像,深浅变化范围为0-255,当透明层的灰度值为0,透明率为100%,中度灰[灰度值127]时为50%,灰度值为255时[白色],透明度为0%。

    知道透明度后,该如何进行运算?

    • 前景RGB(R x 透明度,G x 透明度,Bx透明度)+背景RGB(R x(100%-透明度),G x(100%-透明度,B x(100%-透明度)=合成后的新像素的颜色值

    这种计算可以产生上面实例中的那一组效果。当然,并不一定都是这样,修改合成时的算法,还能衍生出其他新的合成效果。

  • 例如这几种效果等等,这种结果产生不一定是加法运算后的结果。其实,具体算法怎么样,对于非程序员来说,并不重要,对于普通用户,只要记住一点,在图像合成中,透明层非常重要。当理解了透明层的作用,就能够知道换脸、换背景等等常见处理的基本原理。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    03
    我个人认为“蒙板”最贴切。
    发表于2012.02.16 17:57:22
    19
    119.059.193.***
    119.059.193.***
    发表于2011.08.24 23:32:01
    18
    03
    没错,冲水啦
    发表于2011.08.24 23:01:37
    17
    蛋师为人扫盲,功德无量。身为程序员,直到今天才真的搞清Alpha通道是这回事,惭愧惭愧。
    发表于2011.08.23 17:03:20
    16
    03
    发表于2011.08.21 21:52:05
    15
    03
    发表于2011.08.21 20:48:54
    14
    180.118.160.***
    180.118.160.***
    发表于2011.08.21 13:18:28
    13
    03
    发表于2011.08.21 13:17:56
    12
    03
    发表于2011.08.21 12:25:34
    11
    061.236.219.***
    061.236.219.***
    发表于2011.08.21 09:22:23
    10
    03
    发表于2011.08.20 23:31:49
    9
    183.031.089.***
    183.031.089.***
    发表于2011.08.20 22:35:15
    8
    10
    发表于2011.08.20 15:39:48
    6
    03
    改如何进行运算,“该”如何进行运算
    发表于2011.08.20 14:49:42
    5
    110.090.066.***
    110.090.066.***
    发表于2011.08.20 14:16:43
    3
    03
    发表于2011.08.20 13:19:31
    2
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    5928 为防止广告机贴垃圾,不得已而为之
    表情
    正文