测试目的:camera对色彩的还原能力

测试主要设备:24色色卡,灯箱

测试环境:1.D65/CW/A光源,照度为600±100lux,整个chart表面的亮度值相差小于10%

                2.D65光源,照度为20lux,整个chart的表面的亮度相差小于15%

测试注意事项:24色卡位于预览画面的中心,大小占整个画面的70%

测试原理:

       在硬件电子系统中,也就是我们的摄像头,屏幕中,是使用RGB颜色模型来表示的。但是RGB颜色模型中颜色发生变化过程和人眼对颜色的感应过程不一致。简单来说,对RGB颜色模型来说,假设是8bit的颜色深度,当R颜色通道从0增大到10和从240增大到250,其实对于R颜色通道来说,它们的增量大小是一样的。但是对于人眼来说,从当R颜色通道从0增大到10时,人眼能明显看到他们的变化,但是当R颜色通道从240增大到250时,人眼基本上看不出颜色的变化。所以RGB颜色模型不适合用于色彩还原的测试。

       先简单介绍一下CIELAB颜色模型,CIELAB颜色模型表示为(L*,a*,b*),L*用于表示明亮度(Luminance),也是是黑色到白色的变化的位置,范围0~100。a*和b*表示颜色的变化,a*为绿色(green)到紫红色(magenta)间的变化,b*表示蓝色(blue)到黄色(yellow)间的变化,范围额-128到+127。3D图如下图所示,其中距离圆心越进饱和度越低。

色彩复原算法python 色彩还原测试_色彩复原算法python

       对于CIELAB颜色模型,当a*从0变化到10和从100变化到110时,人眼能够感觉到一样的颜色变化。也就是说CIELAB的L*,a*,b*的变化量一样,则人眼感受到的颜色变化是一样的。

       上面所说的就是CIELAB颜色模型具有视觉上的均匀性(perceptually uniform),所以使用CIELAB颜色模型用于camera颜色还原的测试。

       RGB颜色模型转CIELAB颜色模型过程:首先先将RGB颜色模型转成CIEXYZ颜色模型,然后CIEXYZ颜色模型再转换成CIELAB颜色模型。具体转换公式如下:

  RGB >> CIEXYZ

色彩复原算法python 色彩还原测试_色彩复原算法python_02

  CIEXYZ >> CIELAB

色彩复原算法python 色彩还原测试_测试环境_03

其中X n ,Y n ,Z n一般默認是95.047,100.0,108.883。

       下一步基于CIELAB颜色模型计算颜色误差和颜色的饱和度(saturation),如下图所示:

色彩复原算法python 色彩还原测试_3D_04

       用ΔC,ΔE表示色彩正确度误差,如上图所示,左图表示CIELAB颜色模型,右图表示CIELAB颜色模型的一个切面圆。ΔC就是平面圆上两个点的距离。ΔE计算色度差(C)外,还加入明度差。也就是说ΔE表示空间上两个点的距离。一般而言ΔC,ΔE值越小表示越接近真实颜色SRGB,也表示摄像模组的颜色误差越小,颜色越好。ΔC,ΔE计算公式如下:

 

色彩复原算法python 色彩还原测试_模型表示_05

       另外一个测量量就是颜色的饱和度,饱和度指色彩的纯洁性,也叫饱和度或彩度。简单来说,就是颜色越接近黑色或者白色,则饱和度越低。对应到上图的切面圆来说,越靠近圆心则饱和度越低,越靠近圆环饱和度月高。饱和度计算公式如下:

色彩复原算法python 色彩还原测试_3D_06

判断标准:

色彩复原算法python 色彩还原测试_模型表示_07