基于CUDA的Reinhard算法研究
2016-04-14邱晓朴
摘 要:Reinhard色彩迁移算法,是计算机图像领域中的一种特殊算法,输入参考图像与目标图像,经过计算输出结果。目标图像保持原有的图像特征并附加了参考图像的色彩特征。本文的研究图像间的色彩迁移Reinhard算法,研究CUDA并行运算在Reinhard算法上面的应用。
关键词:CUDA;Reinhard色彩迁移算法;研究
DOI:10.16640/j.cnki.37-1222/t.2016.08.133
1 色彩空间[1]
色彩空间的表达形式是多样的,不同的种类的色彩空间是相同构建的,因此不同的色彩空间之间可以经过矩阵计算进行转换。
RGB色彩空间的坐标中的三个轴线分别代表(R)红、(G)绿、(B)蓝三原色,坐标轴的原点代表黑色,RGB空间可以看成一个立方体,与原点对应的立方体的点代表白色,在RGB立方体空间中所有的点分别对应不同的颜色,混合的各个分量具有一定的相关性。
lαβ空间,降低了RGB色彩通道之间的相关性,其中l表示非彩色通道, α代表的黃-蓝通道,β表示红-绿通道。Lαβ空间可以很大程度的降低色彩通道的相关性,所以我们在进行色彩迁移的时候可以利用lαβ空间进行计算操作。
2 色彩空间的转换公式[2]
将图像从RGB空间转换到lαβ空间。
经过这三个步骤就完成了从RGB空间到lαβ空间的转换。
3 色彩迁移算法—Reinhard算法说明[2]
Reinhard算法需要在lαβ色彩空间进行计算,计算过程中匹配目标图像与参考图像当中各个颜色通道的统计信息--均值与标准差,根据计算结果改变目标图像的颜色分布并与参考图像之间的颜色分布相匹配。
假设l、a、b分别是着色图像lαβ通道原有的数据,L、A、B分别是变换后得到新的源图像lαβ通道的值,ml、ma、mb和ml、ma、mb分别是着色图像和源图像的三个颜色通道的均值,nl、na、nb和nl、na、nb表示它们的标准方差。……
