跟着卷卷龙一起学Camera--CCM

737 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情

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 可以使用最小二乘法。对比矫正前后的图像如下