image-20211204155636354

1. 问题描述

给定一张原图像:

src5

和一张参考图像:

tar5

我们希望通过设计一个颜色转换算法,使得源图像具有目标图像的颜色风格,如下图:

res5

2. 算法描述

衡量一幅图像的颜色分布最基础的统计特征就是均值和标准差,文献[1]中便通过这两个特征对图像进行简单的变换并取得不错的效果。

首先,需要将图像的颜色空间从$RGB$空间变换到$l\alpha\beta$空间:

  • $RGB$空间$\rightarrow$ $XYZ$空间
    $$
    \begin{pmatrix}
    X\\Y\\Z
    \end{pmatrix}=
    \begin{pmatrix}
    0.5141&0.3239&0.1604\\
    0.2651&0.6702&0.0641\\
    0.0241&0.1228&0.8444
    \end{pmatrix}
    \begin{pmatrix}
    R\\G\\B
    \end{pmatrix}
    $$

  • $XYZ$空间$\rightarrow$ $LMS$空间
    $$
    \begin{pmatrix}
    L\\M\\S
    \end{pmatrix}=
    \begin{pmatrix}
    0.3897&0.6890&-0.0787\\
    -0.2298&1.1834&0.0464\\
    0.0000&0.0000&1.0000
    \end{pmatrix}
    \begin{pmatrix}
    X\\Y\\Z
    \end{pmatrix}
    $$

  • 变换到对数空间
    $$
    \begin{aligned}
    \pmb L&=\lg L\\
    \pmb M&=\lg M\\
    \pmb S&=\lg S
    \end{aligned}
    $$

  • $\pmb{LMS}$空间$\rightarrow$ $l\alpha\beta$空间
    $$
    \begin{pmatrix}
    l\\\alpha\\\beta
    \end{pmatrix}=
    \begin{pmatrix}
    \frac{1}{\sqrt{3}}&0&0\\
    0&\frac{1}{\sqrt{6}}&0\\
    0&0&\frac{1}{\sqrt{2}}
    \end{pmatrix}
    \begin{pmatrix}
    1&1&1\\
    1&1&-2\\
    1&-1&0
    \end{pmatrix}
    \begin{pmatrix}
    \pmb L\\\pmb M\\\pmb S
    \end{pmatrix}
    $$

同理,将图像的颜色空间从 lαβ 空间变换到 RGB 空间只需将相应的变换矩阵依次求逆即可。

设变换到$l\alpha\beta$颜色空间的源图像的均值和标准差分别为$\mu_s$、$\sigma_s$,目标图像的均值和标准差分别为$\mu_t$、$\sigma_t$,只需通过如下简单处理,即可将源图像的颜色分布变换到接近与目标图像
$$
\begin{aligned}
l’&=\frac{\sigma_t^l}{\sigma_s^l}(l-\mu^l_s)+\mu^l_t\\
\alpha’&=\frac{\sigma_t^\alpha}{\sigma_s^\alpha}(\alpha-mu^\alpha_s)+\mu^\alpha_t\\
\beta’&=\frac{\sigma_t^\beta}{\sigma_s^\beta}(\beta-\mu^\beta_s)+\mu^\beta_t\
\end{aligned}
$$
并将图像$(l’,\alpha’,\beta’)$变换回$RGB$空间即可得到处理后的结果。

3. 实验结果

原图像 参考图像 结果图像
src1 tar1 res1
src2 tar2 res2
src3 tar3 res3
src4 tar4 res4
src5 tar5 res5

参考文献

[1] E. Reinhard, M. Adhikhmin, B. Gooch, and P. Shirley. Color transfer between images. IEEE Computer graphics and applications, 21(5):34–41, 2001.10