当前位置:   article > 正文

CCM的矩阵_ccm矩阵算法

ccm矩阵算法

CCM(Color Correction Matrix)的计算

sensor_RGB空间分别经过M(M =M2*M1)以及 γ(gamma) 校正完成到非线性sRGB空间。

sensorRGB空间我们称之为“源色彩空间",非线性sRGB空间称之为“目标颜色空间”,目前,我们能够得到源色彩空间的“不饱和图”对应的24色色快,也有非线性sRGB空间的“饱和图”对应的24色色快,

那么,只需要将非线性sRGB空间的图片经过反 γ 校正然后再转换到XYZ空间,

那时就可以和sensorRGB数值联立从而求M,由于M1也是已知的,故可以求得M2

 多项式拟合:

sRGB(线性)=(sRGB(非线性))^γ 

24矩阵:

sensor_RGB(m*n)*M(n*n)=sRGB线性

假设sensor_RGB是24个色块,每个色块分为3个颜色颜色分量

即矩阵|OriColor|(24*3)*Max(3*3)=|TarColor|(24*3)

关于MTK的CCM

【R,G,B】表示原始图像的每个像素的RGB的值,

【R',G',B'】表示经过CCM校正后后每个像素的RGB值;

M是由C11~C33组成的3*3的矩阵

 \left\{\begin{matrix} {R}'=R*C11+G*C21+B*C31\\ {G}'=R*C12+G*C22+B*C32 \\ {B}'=R*C13+G*C23+B*C33 \end{matrix}\right. (1.2)

 \left\{\begin{matrix} C11+C12+C13=1\\ C21+C22+C23=1 \\ C31+C32+C33=1 \end{matrix}\right. (1.3)

 其中C11+C12+C13=1;C21+C22+C23=1;C31+C32+C33=1,

是因为灰色要保证RGB三个分量必须相等,MTK的CCM中设置的是等于512

所以3*3的矩阵又可以用6个数表示,即矩阵自由度从9变为6

矩阵修改方向:

若是提高整体的饱和度,则是C11,C22,C33的值增加,其他的值相应减小

当蓝色偏紫时(红多,红色+蓝色是紫色,红多蓝多),可以减少蓝色通道中的红色分量比例(即降低C13),同时为了满足灰色依旧是灰色,需要增加红色分量,即建议增加 C11红色本身分量,而不是C12,绿色通道中的红色分量;

当绿色偏黄时(红多,红色+绿色是黄色,红多绿多),可以减少绿色通道中的红分量比例(即降低C12),同时为了满足灰色依旧是灰色,需要增加红色分量,即建议增加 C11红色本身分量,而不是C13,蓝色通道中的红色分量;

当红色偏橙时(绿多,红色+绿色是黄色,黄色+红色是橙色,绿多),可以减少红色通道中的绿色分量比例(即降低C21),同时为了满足灰色依旧是灰色,需要增加绿色分量,即建议增加C22 绿色本身分量,而不是C23,蓝色通道中的绿色分量;

当红色偏橙时(蓝少,红色+黄色是黄色,黄色+红色是橙色,红多绿多蓝少),可以增加红色通道中的蓝色分量比例(即增加C31),同时为了满足灰色依旧是灰色,需要增加蓝色分量,即建议降低C33蓝色分量中的蓝色,而不是C32,绿色分量中的蓝色;

肤色偏黄,增加绿色中的蓝分量比例(C32);

肤色偏红,增加蓝色中的红色分量比例(C13);

黄色偏红,增加蓝色中的红分量比例(C13),或者减少蓝色中的绿色分量的比例(C23),

黄色偏绿反之

CCM优化算法:

最优化算法有很多可以使用,比如MATLAB中有fmincon函数,Python中可以使用SciPy.optimize.minimize。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/287405
推荐阅读
相关标签
  

闽ICP备14008679号