一张数字影像(Digital Image)是由许多的像素(Pixel)所构成,像素就是数字影像中最基本的单位。
而任一像素会在屏幕上表示某一个颜色,这颜色是由红(R),绿(G),蓝(B)以不同比例混合产生的。一般数字影像的R, G, B是各占 1 Byte,所以一个像素会有3个Byte来储存。
举个例子,若某像素的 R= 255, G = 0, B = 0, 那么该像素会是纯红色;若 R= 125, G = 0, B = 125, 那么会是偏暗的紫色;若R= 255, G= 255, B = 255, 那么就会是纯白色。
这种1个像素有3 Byte的这种影像,称为24 bit影像。
另外有一种影像是1个像素有4 Byte,称为32 bit影像。那么多一个byte是要存放什么信息呢?这个byte称为Alpha,它代表不透明度(Opacity),越高越不透明。如此,这种RGBA格式的影像,就可以做半透明重迭影像的效果,我们称这种技术为Alpha Blending。
假设我们有两张影像要进行Alpha Blending。其中一张称为目的影像(Destination) Id,它将是经过Alpha Blending后所产生的重迭影像;另一张称为来源影像(Source) Is,它将会迭在目的影像之上。在进行颜色的运算前,我们都会将RGBA各成份的值正规化(Normalize),也就是将0~255缩小至0~1之间。
令一函数 Ci(I) 代表从影像 I 取出第i个像素的 RGBA值,
其中 I 具有N个像素,0 ≦ i ≦ N- 1。
再令一函数 αi(I) 代表从影像 I 取出第i个像素的 Alpha值,
其中 I 具有N个像素,0 ≦ i ≦ N- 1。
则我们可以将整个Aplha Blending的动作以一个数学式来表示:
Ci(Id) = Ci(Is) αi(Is) + Ci(Id) (1 - αi(Is))
,其中 Is的共有N个像素,0 ≦ i ≦ N-1。
若我们有M (I1~IM)张影像依序进行Alpha Blending,则可以下列递归式表示:
Ci(IM)’ = Ci(IM) αi(IM) + Ci(IM-1)’ (1 - αi(IM))
其中,Ci(IM)’ 代表经过 M 次Alpha blending后的影像, IM 共有N个像素,0 ≦ i ≦ N-1。
展开此递归式:
M-1 k-1
Ci(I) = Σ Ci(IM-k) αi(IM-k) Π (1 - αi(IM-s))
k= 0 s = 0
若我们将αi(I) 令为一种自然函数 :
αi(I) = 1 - e^(Ti(I)),其中 Ti(I) 为影像 I 中第 i 个像素的衰减度。
则:
k-1 k-1
Π (1 - αi(IM-s)) = Π e^(Ti(IM-s))
s = 0 s = 0
k-1
= e^( Σ Ti(IM-s) )
s= 0
k-1
= e^( ∫ Ti(x)dx )
0
到此,很明显地,整个Alpha Blending就是一种积分:
M-1 k-1
Ci = ∫ Ci(λ) αi(λ) e^( ∫ Ti(x)dx ) dλ
0 0

