`
emowuyi
  • 浏览: 1474161 次
文章分类
社区版块
存档分类
最新评论

alpha混合的数学原理与实现

 
阅读更多
玩davinci的人都知道,视频处理后端(视频图像显示)中的attribute层,是VIDEO1和OSD0的alpha混合,是framebuffer的驱动实现的这种效果。

alpha混合技术,主要是用于实现半透明的效果,假设一种不透明东西的颜色是A(即VIDEO1),另一种透明的东西的颜色是B(即OSD0),那么透过B去看A,看上去的颜色C(即attribute)就是B和A的混合颜色,可以用下面的式子来近似,设B物体的透明度为alpha(取值为0~1之间的浮点数,0为完全透明,1为完全不透明)[1]

R(C)=alpha*R(B)+(1-alpha)*R(A)
G(C)=alpha*G(B)+(1-alpha)*G(A)
B(C)=alpha*B(B)+(1-alpha)*B(A)

alpha混合可以实现火光、烟雾、阴影、动态光源等等一切你可以想象的出来的半透明效果,具体思想参考[1]。

下面给出实现alpha混合的OpenCV代码,取alpha为0.4、0.6时,alpha混合效果如下图。

源代码:

IDE:vc6

参考:

[1]http://dev.gameres.com/Program/Visual/2D/AlphaQiantan.htm


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics