跟着卷卷龙一起学 Camera--CCM
What is CCM?
对于辐射强度相同而颜色(波长)不同的光,人眼的亮度感觉是不同。人眼对于频谱的响应度和传感器对于频谱的相应度是不一样的。所以人眼直接看 ISP 未矫正的直出的 RGB,是和人眼感受到的不一样。因此必须对摄像机记录的颜色进行校正以还原人眼的感知效果。CCM(Color Correction Matrix),就是为了做颜色矫正的。这一模块是在 RGB 域做的。设人眼可以看到的颜色有 N 种,那么原始 RGB 矩阵就是 N3 的矩阵。为了映射出一个新的 N3 的更符合人眼的颜色矩阵。这中间需要一个 3*3 的 CC 矩阵。CCM 实际上只能优先保证几个最重要的颜色在人看来是“正确”的,而不可能面面俱到地保证所有颜色在所有条件下都是最优的。
CCM 必须不能破坏白平衡,即 R=B=G 的点,映射出来新的 R\G\B 也必须相等。所以 CCM 必须在 AWB 之后做。
How to do CCM?
其实 LUT 表也能做颜色转换,将颜色逐一映射,但是不能精确的做出每一种颜色。为了能够描述这一三维矩阵的转换关系,这里就需要解出 CCM。在矩阵求解的过程中,还需要加入白平衡一致的约束条件。
在实践中,我们通常使用 X-Rite 24 色卡上的 18 色块为标准计算校正系数,即使用不同色温下的色卡,得到图像后,提取 18 各色块的平均颜色颜色块,形成输入矩阵 S,使用标准 RGB 值作为目标 S':
S′=M⋅S
通常直接求解 M 可以使用最小二乘法。对比矫正前后的图像如下
版权声明: 本文为 InfoQ 作者【卷卷龙】的原创文章。
原文链接:【http://xie.infoq.cn/article/9b82728e6c273943663f014b3】。文章转载请联系作者。
评论