【图像处理】-027 Blue Screen Matting
在电视行业,广泛使用的绿幕抠像,又称为chromakey。以前对这个应用倒是很熟悉,但对原理不熟悉,这次在阅读matting论文的时候,读到了《Blue Screen Matting》一文,感觉对蓝幕抠像、绿幕抠像的原理进行了介绍,这里对这篇文章做一个笔记。
文章目录
1 简介
1.1 Definitions
抠像问题,是从一个矩形的背景图像中,分离出来一个非矩形的前景图像的问题。matte最开始来自电影工业,表示一卷独立的胶卷,用于记录播放时想要投影出去的画面区域,感兴趣区域是透明的。放映时,将matte和颜色胶卷同步播放,光线不能透过matte胶卷的遮蔽区域。holdout matte中,感兴趣区域是不透明的,其他区域都是透明的。
alpha channel是holdout matte的数字形式。对于色彩图像中需要被用户看到的像素,在alpha channel中对应一个高像素值,对于不希望用户看到的像素,在alpha channel中对应一个0值。通常,使用1和0表示alpha值,在使用8bits存储时,使用255表示1,0表示0.小数的透明度值表示彩色图像中的像素部分透明。
1.2 Problem
通过组合多个像元(elements)生成单一的一张结果图像(composite)是一个很常见的想法。这里,我们将问题限定在这样一个特殊范围内:一个或多个前景目标放置在一个特定颜色的背景上。
抠像问题可以视为将一个复杂场景拆分成组成这个场景的多个组成部分。这里,我们讨论的问题是只给定一幅组合后的图像,从中分离出各个组成部分。对于多通道摄影中涉及的红外、紫外等手段将前景目标记录到单一的影片中的技术,其中不涉及抠像问题。
使用 C f C_f Cf表示前景图像上的颜色, α f = 1 \alpha_f=1 αf=1,前景图全部不透明, C b C_b Cb表示新背景图上的颜色, α b = 1 \alpha_b=1 αb=1,新背景图全部不透明。那么可以使用 C C C表示组合之后的颜色,其中 C = f 1 ( C f , C b ) C=f_{1}(C_f,C_b) C=f1(Cf,Cb), f 1 f_1 f1表示组合方式。
假设前景图 C f C_f Cf是由前景目标组合之前的颜色 C o C_o Co与特定的纯色背景颜色 C k C_k Ck组合而来,那么 C f = f 2 ( C o , C k ) C_f=f_{2}(C_o,C_k) Cf=f2(Co,Ck),其中 α k = 1 \alpha_k = 1 αk=1,表示纯色背景全部不透明, α o \alpha_o αo表示前景目标上各像素的透明度。
在《Compositing Digital Images》一文中指出,当使用
o
v
e
r
over
over操作组合两幅图像时,将透明度为
α
a
\alpha_a
αa的图像
a
a
a叠加到图像
b
b
b之上的时候,可以通过下列公式计算输出的颜色:
(1)
C
=
C
a
+
(
1
−
α
a
)
C
b
,
0
≤
α
a
≤
1
C=C_a+(1-\alpha_a)C_b , 0 \leq \alpha_a \leq 1 \tag{1}
C=Ca+(1−αa)Cb,0≤αa≤1(1)
那么,对于上面的
f
2
f_2
f2组合,选用
o
v
e
r
over
over操作,
(2)
C
f
=
C
o
+
(
1
−
α
o
)
C
k
C_f=C_o+(1-\alpha_o)C_k \tag{2}
Cf=Co+(1−αo)Ck(2)
由于将前景图
C
f
C_f
Cf组合到新背景图
C
b
C_b
Cb上,指的是将前景图上的前景目标组合到新背景上,因此,
(3)
C
=
C
o
+
(
1
−
α
o
)
C
b
C=C_o+(1-\alpha_o)C_b \tag{3}
C=Co+(1−αo)Cb(3)
The Matting Problem
Given
C
f
C_f
Cf and
C
b
C_b
Cb at corresponding points, and
C
k
C_k
Ck a known backing color, and assuming
C
f
=
C
o
+
(
1
−
α
o
)
C
k
C_f=C_o+(1-\alpha_o)C_k
Cf=Co+(1−αo)Ck, determine
C
o
C_o
Co which then gives composite color
C
=
C
o
+
(
1
−
α
o
)
C
b
C=C_o+(1-\alpha_o)C_b
C=Co+(1−αo)Cb at the corresponding point, for all points that
C
f
C_f
Cf and
C
b
C_b
Cb share in common.
——摘自《Blue Screen Matting》,Alvy Ray Smith and James F.Blinn,SIGGRAPH 96
其中,
C
o
C_o
Co包括颜色和透明度,称为抠像问题的解。如果各个像素的
C
o
C_o
Co都能够求出的话,那么就能够求出所有像素下前景图与新背景图的组合之后的颜色。
2 Matting problem special case solution
对于直接从式(2)中求解 C o C_o Co是很困难的,因此,我们先讨论一些特殊情况下的解。
2.1 No blue
这里,我们假设前景元素中没有蓝色分量,而背景元素中只含有蓝色分量,即
c
o
=
[
R
o
,
G
o
,
0
]
c_o=[R_o,G_o,0]
co=[Ro,Go,0],
c
k
=
[
0
,
0
,
B
k
]
c_k=[0,0,B_k]
ck=[0,0,Bk],那么
(4)
c
f
=
c
o
+
(
1
−
α
o
)
c
k
=
[
R
o
,
G
o
,
0
]
+
(
1
−
α
o
)
[
0
,
0
,
B
k
]
=
[
R
o
,
B
o
,
(
1
−
α
o
)
B
k
]
c_f=c_o+(1-\alpha_o)c_k=[R_o,G_o,0]+(1-\alpha_o)[0,0,B_k]=[R_o,B_o,(1-\alpha_o)B_k] \tag{4}
cf=co+(1−αo)ck=[Ro,Go,0]+(1−αo)[0,0,Bk]=[Ro,Bo,(1−αo)Bk](4)
而实际上,
c
f
=
[
R
f
,
G
f
,
B
f
]
c_f=[R_f,G_f,B_f]
cf=[Rf,Gf,Bf],所以
(5)
B
f
=
(
1
−
α
o
)
B
k
B_f = (1-\alpha_o)B_k \tag{5}
Bf=(1−αo)Bk(5)
当
B
k
≠
0
B_k \neq 0
Bk̸=0时,
(6)
α
o
=
1
−
B
f
B
k
\alpha_o=1-\frac{B_f}{B_k} \tag{6}
αo=1−BkBf(6)
由于前景元素中没有蓝色分量,背景只含有蓝色分量,所以,组合之后的前景图像
C
f
C_f
Cf中所有的蓝色分量都来自于背景,因此可以求解出组合前的前景元素的透明度。
2.2 Gray or Flesh
第二类特殊问题可以理解成 C o C_o Co是灰度图,也就是说 R o = G o = B o R_o=G_o=B_o Ro=Go=Bo,我们可以将条件放松到 R o = B o R_o=B_o Ro=Bo或者 G o = B o G_o=B_o Go=Bo。
当
R
o
o
r
G
o
=
a
B
o
+
b
α
o
R_o orG_o=aB_o+b\alpha_o
RoorGo=aBo+bαo,
c
k
c_k
ck是纯色,并且
a
B
k
+
b
≠
0
aB_k+b \neq 0
aBk+b̸=0时,抠像问题存在解
C
o
C_o
Co。
(7)
c
o
=
[
R
o
,
G
o
,
B
o
]
c
f
=
[
R
f
,
G
f
,
B
f
]
c
k
=
[
0
,
0
,
B
k
]
\begin{array}{l} c_o=[R_o,G_o,B_o] \tag{7} & & \\ c_f=[R_f,G_f,B_f] & & \\ c_k=[0,0,B_k] & & \\ \end{array}
co=[Ro,Go,Bo]cf=[Rf,Gf,Bf]ck=[0,0,Bk](7)
因为
C
f
=
C
o
+
(
1
−
α
o
)
C
k
C_f=C_o+(1-\alpha_o)C_k
Cf=Co+(1−αo)Ck,所以
(8)
{
c
f
=
c
o
+
(
1
−
α
o
)
c
k
c
f
=
[
R
o
,
G
o
,
B
o
−
(
1
−
α
o
)
B
k
]
c
f
=
[
R
o
,
a
B
o
+
b
α
o
,
B
o
+
(
1
−
α
o
)
B
k
]
c
f
=
[
R
f
,
G
f
,
B
f
]
\begin{cases} c_f=c_o+(1-\alpha_o)c_k\quad \\\\ c_f=[R_o,G_o,B_o-(1-\alpha_o)B_k]\quad \\\\ c_f=[R_o,aB_o+b\alpha_o,B_o+(1-\alpha_o)B_k]\quad \\\\ c_f=[R_f,G_f,B_f] \tag{8} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧cf=co+(1−αo)ckcf=[Ro,Go,Bo−(1−αo)Bk]cf=[Ro,aBo+bαo,Bo+(1−αo)Bk]cf=[Rf,Gf,Bf](8)
所以
(9)
{
G
f
=
a
B
o
+
b
α
o
B
f
=
B
o
+
(
1
−
α
o
)
B
k
\begin{cases} G_f=aB_o+b\alpha_o\quad \\\\ B_f=B_o+(1-\alpha_o)B_k\quad \tag{9} \end{cases}
⎩⎪⎨⎪⎧Gf=aBo+bαoBf=Bo+(1−αo)Bk(9)
所以
(10)
{
α
o
=
G
f
−
a
B
o
b
B
f
=
B
o
+
(
1
−
G
f
−
a
B
o
b
)
B
k
\begin{cases} \alpha_{o}=\frac{G_f-aB_o}{b}\quad \\\\ B_f=B_o+(1-\frac{G_f-aB_o}{b})B_{k}\quad \tag{10} \end{cases}
⎩⎪⎨⎪⎧αo=bGf−aBoBf=Bo+(1−bGf−aBo)Bk(10)
(11)
(
1
+
a
B
k
b
)
B
o
=
B
f
−
B
k
+
B
k
b
G
f
(1+\frac{aB_{k}}{b})B_{o}=B_{f}-B_{k}+\frac{B_k}{b}G_f \tag{11}
(1+baBk)Bo=Bf−Bk+bBkGf(11)
令
B
Δ
=
B
f
−
B
k
B_{\Delta}=B_{f}-B_{k}
BΔ=Bf−Bk,
(12)
{
B
o
=
B
Δ
−
B
k
b
G
f
1
+
a
B
k
b
=
b
B
Δ
+
B
k
G
f
b
+
a
B
k
\begin{cases} B_{o} &=&\frac{B_{\Delta}-\frac{B_{k}}{b}G_{f}}{1+\frac{aB_{k}}{b}}\quad \\\\ &=&\frac{bB_{\Delta}+B_{k}G_{f}}{b+aB_{k}}\quad \tag{12} \end{cases}
⎩⎪⎪⎨⎪⎪⎧Bo==1+baBkBΔ−bBkGfb+aBkbBΔ+BkGf(12)
因为
(13)
B
f
=
B
0
+
(
1
−
α
0
)
B
k
B_{f}=B_{0}+(1-\alpha_{0})B_{k} \tag{13}
Bf=B0+(1−α0)Bk(13)
所以
(14)
B
f
−
b
B
Δ
+
B
k
G
f
b
+
a
B
k
=
(
1
−
α
0
)
B
k
B_{f}-\frac{bB_{\Delta}+B_{k}G_{f}}{b+aB_{k}}=(1-\alpha_{0})B_{k} \tag{14}
Bf−b+aBkbBΔ+BkGf=(1−α0)Bk(14)
(15)
{
α
0
=
B
f
−
B
k
−
b
B
Δ
+
B
k
G
f
b
+
a
B
k
−
B
k
=
(
b
+
a
B
k
)
B
Δ
−
b
B
Δ
−
B
k
G
f
b
+
a
B
k
−
B
k
=
a
B
k
B
Δ
−
B
k
G
f
b
+
a
B
k
−
B
K
=
G
f
−
a
B
Δ
b
+
a
B
k
\begin{cases} \alpha_{0} &=&\frac{B_{f}-B_{k}-\frac{bB_{\Delta+B_{k}G_{f}}}{b+aB_{k}}}{-B_{k}}\quad \\\\ &=&\frac{\frac{(b+aB_{k})B_{\Delta}-bB_{\Delta}-B_{k}G_{f}}{b+aB_{k}}}{-B_{k}} \\\\ &=&\frac{\frac{aB_{k}B_{\Delta}-B_{k}G_{f}}{b+aB_{k}}}{-B_{K}}\\\\ &=&\frac{G_{f}-aB_{\Delta}}{b+aB_{k}} \tag{15} \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧α0====−BkBf−Bk−b+aBkbBΔ+BkGf−Bkb+aBk(b+aBk)BΔ−bBΔ−BkGf−BKb+aBkaBkBΔ−BkGfb+aBkGf−aBΔ(15)
(16)
B
o
=
B
f
−
B
k
+
α
o
B
k
=
B
Δ
+
α
o
B
k
B_{o}=B_{f}-B_{k}+\alpha_{o}B_{k}=B_{\Delta}+\alpha_{o}B_{k} \tag{16}
Bo=Bf−Bk+αoBk=BΔ+αoBk(16)
(17)
C
0
=
[
R
f
,
G
f
,
B
Δ
+
α
o
B
k
,
G
f
−
a
B
Δ
b
+
a
B
k
]
C_{0}=[R_{f},G_{f},B_{\Delta}+\alpha_{o}B_{k},\frac{G_{f}-aB_{\Delta}}{b+aB_{k}}] \tag{17}
C0=[Rf,Gf,BΔ+αoBk,b+aBkGf−aBΔ](17)
2.3 Triangulation
对于第三种特殊情况,要求对同一个前景目标,分别在不同颜色的背景上进行两次拍摄。分别使用
B
k
1
B_{k_{1}}
Bk1和
B
k
2
B_{k_{2}}
Bk2表示两次拍摄的背景,
B
k
1
=
c
B
k
B_{k_{1}}=cB_{k}
Bk1=cBk,
B
k
2
=
d
B
k
B_{k_{2}}=dB_{k}
Bk2=dBk,
0
≤
d
<
c
≤
1
0 \leq d < c \leq 1
0≤d<c≤1.
(18)
c
f
1
=
c
0
+
(
1
−
α
o
)
c
k
1
=
[
R
o
,
G
o
,
B
o
+
(
1
−
α
o
)
B
k
1
]
=
[
R
f
1
,
G
f
1
,
B
f
1
]
c_{f_1}=c_0+(1-\alpha_o)c_{k_{1}}=[R_o,G_o,B_o+(1-\alpha_o)B_{k_1}]=[R_{f_1},G_{f_1},B_{f_1}] \tag{18}
cf1=c0+(1−αo)ck1=[Ro,Go,Bo+(1−αo)Bk1]=[Rf1,Gf1,Bf1](18)
(19)
c
f
2
=
c
0
+
(
1
−
α
o
)
c
k
2
=
[
R
o
,
G
o
,
B
o
+
(
1
−
α
o
)
B
k
2
]
=
[
R
f
2
,
G
f
2
,
B
f
2
]
c_{f_2}=c_0+(1-\alpha_o)c_{k_{2}}=[R_o,G_o,B_o+(1-\alpha_o)B_{k_2}]=[R_{f_2},G_{f_2},B_{f_2}] \tag{19}
cf2=c0+(1−αo)ck2=[Ro,Go,Bo+(1−αo)Bk2]=[Rf2,Gf2,Bf2](19)
(20)
{
B
f
1
=
B
o
+
(
1
−
α
o
)
B
k
1
B
f
2
=
B
o
+
(
1
−
α
o
)
B
k
2
\begin{cases} B_{f_1} &=&B_o+(1-\alpha_o)B_{k_1} \\\\ B_{f_2} &=&B_o+(1-\alpha_o)B_{k_2} \tag{20} \end{cases}
⎩⎪⎨⎪⎧Bf1Bf2==Bo+(1−αo)Bk1Bo+(1−αo)Bk2(20)
(21)
B
f
1
=
(
B
f
2
−
(
1
−
α
o
)
B
k
2
)
+
(
1
−
α
o
)
B
k
1
B_{f_1} =(B_{f_2}-(1-\alpha_o)B_{k_2})+(1-\alpha_o)B_{k_1} \tag{21}
Bf1=(Bf2−(1−αo)Bk2)+(1−αo)Bk1(21)
(22)
α
o
=
1
−
B
f
1
−
B
f
2
B
k
1
−
B
k
2
\alpha_o=1-\frac{B_{f_1}-B_{f_2}}{B_{k_1}-B_{k_2}} \tag{22}
αo=1−Bk1−Bk2Bf1−Bf2(22)
(23)
B
o
=
B
k
1
B
f
2
−
B
k
2
B
f
1
B
k
1
−
B
k
2
B_o=\frac{B_{k_1}B_{f_2}-B_{k_2}B_{f_1}}{B_{k_1}-B_{k_2}} \tag{23}
Bo=Bk1−Bk2Bk1Bf2−Bk2Bf1(23)
(24)
C
o
=
[
R
f
1
,
G
f
1
,
B
k
1
B
f
2
−
B
k
2
B
f
1
B
k
1
−
B
k
2
,
1
−
B
f
1
−
B
f
2
B
k
1
−
B
k
2
]
C_o=[R_{f_1},G_{f_1},\frac{B_{k_1}B_{f_2}-B_{k_2}B_{f_1}}{B_{k_1}-B_{k_2}},1-\frac{B_{f_1}-B_{f_2}}{B_{k_1}-B_{k_2}} ] \tag{24}
Co=[Rf1,Gf1,Bk1−Bk2Bk1Bf2−Bk2Bf1,1−Bk1−Bk2Bf1−Bf2](24)
3 通用解
令
R
Δ
=
R
f
−
R
k
R_{\Delta}=R_f-R_k
RΔ=Rf−Rk,
G
Δ
=
G
f
−
G
k
G_{\Delta}=G_f-G_k
GΔ=Gf−Gk,
B
Δ
=
B
f
−
B
k
B_{\Delta}=B_f-B_k
BΔ=Bf−Bk,那么
H
=
C
o
[
1
0
0
t
1
0
1
0
t
2
0
0
1
t
3
−
R
k
−
G
k
−
B
k
t
4
]
=
[
R
o
,
G
o
,
B
o
,
α
o
]
[
1
0
0
t
1
0
1
0
t
2
0
0
1
t
3
−
R
k
−
G
k
−
B
k
t
4
]
H= C_{o}\begin{bmatrix} 1&0&0&t_{1} \\\\ 0&1&0&t_{2} \\\\ 0&0&1&t_{3} \\\\ -R_k&-G_k&-B_k&t_{4} \end{bmatrix}=[R_o,G_o,B_o,\alpha_o]\begin{bmatrix} 1&0&0&t_{1} \\\\ 0&1&0&t_{2} \\\\ 0&0&1&t_{3} \\\\ -R_k&-G_k&-B_k&t_{4} \end{bmatrix}
H=Co⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡100−Rk010−Gk001−Bkt1t2t3t4⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=[Ro,Go,Bo,αo]⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡100−Rk010−Gk001−Bkt1t2t3t4⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
H
=
C
o
[
1
0
0
t
1
0
1
0
t
2
0
0
1
t
3
−
R
k
−
G
k
−
B
k
t
4
]
=
[
R
o
−
R
k
α
o
,
G
o
−
G
k
α
o
,
B
o
−
B
k
α
o
,
T
]
H= C_{o}\begin{bmatrix} 1&0&0&t_{1} \\\\ 0&1&0&t_{2} \\\\ 0&0&1&t_{3} \\\\ -R_k&-G_k&-B_k&t_{4} \end{bmatrix}=[R_o-R_k\alpha_o,G_o-G_k\alpha_o,B_o-B_k\alpha_o,T]
H=Co⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡100−Rk010−Gk001−Bkt1t2t3t4⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=[Ro−Rkαo,Go−Gkαo,Bo−Bkαo,T]
其中
T
=
R
o
t
1
+
G
o
t
2
+
B
o
t
3
+
α
o
t
4
T=R_ot_1+G_ot_2+B_ot_3+\alpha_ot_4
T=Rot1+Got2+Bot3+αot4。由于
(25)
R
f
=
R
o
+
(
1
−
α
o
)
R
k
G
f
=
G
o
+
(
1
−
α
o
)
G
k
B
f
=
B
o
+
(
1
−
α
o
)
B
k
\begin{aligned} R_f&=&R_o+(1-\alpha_o)R_k \\\\ G_f&=&G_o+(1-\alpha_o)G_k \\\\ B_f&=&B_o+(1-\alpha_o)B_k \tag{25} \end{aligned}
RfGfBf===Ro+(1−αo)RkGo+(1−αo)GkBo+(1−αo)Bk(25)
(26)
R
Δ
=
R
f
−
R
k
=
R
o
−
α
o
R
k
G
Δ
=
G
f
−
G
k
=
G
o
−
α
o
G
k
B
Δ
=
B
f
−
B
k
=
B
o
−
α
o
B
k
\begin{aligned} R_{\Delta}&=&R_f - R_k=R_o-\alpha_oR_k \\\\ G_{\Delta}&=&G_f - G_k=G_o-\alpha_oG_k \\\\ B_{\Delta}&=&B_f - B_k=B_o-\alpha_oB_k \tag{26} \end{aligned}
RΔGΔBΔ===Rf−Rk=Ro−αoRkGf−Gk=Go−αoGkBf−Bk=Bo−αoBk(26)
所以
(27)
H
=
[
R
Δ
,
G
Δ
,
B
Δ
,
T
]
H=[R_{\Delta},G_{\Delta},B_{\Delta},T] \tag{27}
H=[RΔ,GΔ,BΔ,T](27)
令
(28)
t
‾
=
[
t
1
,
t
2
,
t
3
,
t
4
]
C
k
=
[
R
k
,
G
k
,
B
k
,
1
]
\begin{aligned} \overline{t}&=&[t_1,t_2,t_3,t_4] \\\\ C_k&=&[R_k,G_k,B_k,1] \end{aligned} \tag{28}
tCk==[t1,t2,t3,t4][Rk,Gk,Bk,1](28)
(29)
∴
α
o
t
4
=
T
−
(
R
Δ
+
α
o
R
k
)
t
1
−
(
G
Δ
+
α
o
G
k
)
t
2
−
(
B
Δ
+
α
o
B
k
)
t
3
α
o
(
R
k
t
1
+
G
k
t
2
+
B
k
t
3
+
t
4
)
=
T
−
(
R
Δ
t
1
+
G
Δ
t
2
+
B
Δ
t
3
)
\therefore \begin{aligned} \alpha_ot_4&=&T-(R_{\Delta}+\alpha_oR_k)t_1-(G_{\Delta}+\alpha_oG_k)t_2-(B_{\Delta}+\alpha_oB_k)t_3 \\\\ \alpha_o(R_kt_1+G_kt_2+B_kt_3+t_4)&=&T-(R_{\Delta}t_1+G_{\Delta}t_2+B_{\Delta}t_3) \end{aligned} \tag{29}
∴αot4αo(Rkt1+Gkt2+Bkt3+t4)==T−(RΔ+αoRk)t1−(GΔ+αoGk)t2−(BΔ+αoBk)t3T−(RΔt1+GΔt2+BΔt3)(29)
(30)
∴
α
o
t
‾
C
k
=
T
−
(
R
Δ
t
1
+
G
Δ
t
2
+
B
Δ
t
3
)
\therefore \begin{aligned} \alpha_o\overline{t}C_k&=&T-(R_{\Delta}t_1+G_{\Delta}t_2+B_{\Delta}t_3) \end{aligned} \tag{30}
∴αotCk=T−(RΔt1+GΔt2+BΔt3)(30)
(31)
∴
α
o
=
T
−
(
R
Δ
t
1
+
G
Δ
t
2
+
B
Δ
t
3
)
t
‾
C
k
=
T
−
t
‾
C
Δ
t
‾
C
k
=
T
−
t
‾
(
C
f
−
C
k
)
t
‾
C
k
=
T
−
t
‾
C
f
+
t
‾
C
k
t
‾
C
k
=
1
+
T
−
t
‾
C
f
t
‾
C
k
=
1
−
t
‾
C
f
−
T
t
‾
C
k
\therefore \begin{aligned} \alpha_o&=&\frac{T-(R_{\Delta}t_1+G_{\Delta}t_2+B_{\Delta}t_3)}{\overline{t}C_k}\\\\ &=&\frac{T-\overline{t}C_{\Delta}}{\overline{t}C_k} \\\\ &=&\frac{T-\overline{t}(C_f-C_k)}{\overline{t}C_k} \\\\ &=&\frac{T-\overline{t}C_{f}+\overline{t}C_{k}}{\overline{t}C_k} \\\\ &=&1+\frac{T-\overline{t}C_{f}}{\overline{t}C_k} \\\\ &=&1-\frac{\overline{t}C_{f}-T}{\overline{t}C_k} \\\\ \end{aligned} \tag{31}
∴αo======tCkT−(RΔt1+GΔt2+BΔt3)tCkT−tCΔtCkT−t(Cf−Ck)tCkT−tCf+tCk1+tCkT−tCf1−tCktCf−T(31)
(32) C o = C Δ + α o C k = C f − C k + α o C k \begin{aligned} C_o&=&C_{\Delta}+\alpha_oC_k \\\\ &=&C_f-C_k+\alpha_oC_k \end{aligned} \tag{32} Co==CΔ+αoCkCf−Ck+αoCk(32)
参考文献
- (1) Alvy Ray Smith, James F.Blinn, Blue Screen Matting
- (2) Thomas Porter, Tom Duff, Compositing Digital Images