如何从一对不透明图像中推断出 alpha 值

how to infer alpha value from pair of opaque images

我有两张图片,一张是白底,一张是黑底,我想把这些图片转换成一张半透明图片

我发现

color*alpha=blackBackgroundImage
color*alpha+(1-alpha)=whiteBackgroundImage

我想要一个接受 blackBackgroundImage 和 whiteBackgroundImage 并输出颜色和 alpha 的函数

我数学不好

你快到了。你只需要解方程组:

    color*alpha=blackBackgroundImage
<=> color = blackBackgroundImage / alpha

将其代入第二个等式:

    blackBackgroundImage / alpha * alpha + (1 - alpha)*(1,1,1) = whiteBackgroundImage
<=> blackBackgroundImage + (1 - alpha)*(1,1,1) = whiteBackgroundImage
<=> (1 - alpha)*(1,1,1) = whiteBackgroundImage - blackBackgroundImage

所以alpha应该是1 + blackBackgroundImage.r - whiteBackgroundImage.r。这同样适用于任何其他频道。