camera测试之颜色还原
测试目的: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图如下图所示,其中距离圆心越进饱和度越低。

对于CIELAB颜色模型,当a*从0变化到10和从100变化到110时,人眼能够感觉到一样的颜色变化。也就是说CIELAB的L*,a*,b*的变化量一样,则人眼感受到的颜色变化是一样的。
上面所说的就是CIELAB颜色模型具有视觉上的均匀性(perceptually uniform),所以使用CIELAB颜色模型用于camera颜色还原的测试。
RGB颜色模型转CIELAB颜色模型过程:首先先将RGB颜色模型转成CIEXYZ颜色模型,然后CIEXYZ颜色模型再转换成CIELAB颜色模型。具体转换公式如下:
RGB >> CIEXYZ

CIEXYZ >> CIELAB

其中X n ,Y n ,Z n一般默認是95.047,100.0,108.883。
下一步基于CIELAB颜色模型计算颜色误差和颜色的饱和度(saturation),如下图所示:

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

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

判断标准:

camera测试之颜色还原的更多相关文章
- Camera测试之Color & Lens shading Test
测试目的:测试摄像头成像的均匀性 测试主要设备:均匀光源(DNP灯箱),色温照度计 测试环境:将灯箱光源调至600±100lux 测试注意事项:保证均匀的光源 测试原理: 造成摄像头成像不均匀的原因有 ...
- camera测试之MTF
1.MTF介绍 MTF(Modulation Transfer Function)模量传递函数.MTF是camera成像对比度和分辨率的综合表现.从另一个角度来看,camera成像过程可以简单看成下图 ...
- Camera光学、成像和 3A 算法 (视觉),camera开发
简单介绍 转载:https://blog.csdn.net/ShareUs/article/details/94295628 成像与光学.计算机视觉,图像处理,数字成像.自动驾驶与视觉. 镜头设计:人 ...
- Camera噪声问题
Camera噪声问题 Camera RGB 域的噪声 以上部分属于sensor processing,接下来的部分属于color.luminance processing. gamma gamma是在 ...
- gridView RowDataBound事件 鼠标经过行颜色变化及根据字段值显示指定内容
protected void gvBarInfo_RowDataBound(object sender, GridViewRowEventArgs e) { if ...
- Asp.Net中GridView加入鼠标滑过的高亮效果和单击行颜色改变
转载自:http://www.cnblogs.com/fly_dragon/archive/2010/09/03/1817252.html protected void GridView1_RowDa ...
- three.js使用gpu选取物体并计算交点位置
光线投射法 使用three.js自带的光线投射器(Raycaster)选取物体非常简单,代码如下所示: var raycaster = new THREE.Raycaster(); var mouse ...
- three.js中的事件
以上一篇入门篇为例来简单的设置下3d模型当中的交互事件,上一篇我们已经完成了在3d页面中添加了一个红色球,下面我们给这个球一个点击事件让它Y轴位置上升,再设置一个鼠标移入到球上时让其变色. 1.其实t ...
- angularjs和ajax的结合使用 (一)
好久没写文了.这是一篇关于easyui配合ajax使用 的文章, 顺带介绍angularjs的使用 以及让你感受到angularjs的威力.网上对于ajax 的文也是多如牛毛 .我就不直接 从那种原生 ...
随机推荐
- latex 常用自定义_随时更新
1.向量定义 代码: \newcommand{\vector}[1]{${#1}_1,{#1}_2,\cdots,{#1}_n$} 效果: a1,a2,...,an
- MySQL基础知识3
- 产生 unmerge path git
1. Pull is not possible because you have unmerged files. 症状:pull的时候 $ git pull Pull is not possible ...
- linux根目录介绍
1. /bin binary二进制 存放系统许多可执行程序文件 执行的相关指令,例如ls pwd whoami,后台的支持文件目录 2. /sbin super binary超级的二进制 存放系统许多 ...
- shiro授权测试
shiro-permission.ini 创建存放权限的配置文件shiro-permission.ini,如下: [users] #用户zhang的密码是1111111,此用户具有role1和role ...
- 河北大学python选修课00次作业
学习python认为挺好玩的一件事.看到很多关于python的东西在网上,看到有这个课,认为只是选修课,别人也可以选,自己想不能被别人落下,别人都会,我不会可不行. 而且认为python是一个很强大的 ...
- Redis-03.事务
Redis事务: 在一个队列(queue)中依次执行一系列的命令. 事务的三个阶段: 1.开始事务(MULTI) 2.命令加入队列 (QUEUE) 3.执行事务 (EXEC) 示例1: MULTI & ...
- Redis Cluster [WARNING] Node 127.0.0.1:7003 has slots in migrating state (15495).
错误描述 在迁移一个节点上的slot到另一个节点的时候卡在其中的一个slot报错,截图如下: 查询发现在15495的这个slot上面存在一个key,但是并没有发现这个key有什么问题.使用fix进行修 ...
- Java 11 究竟比 8 快了多少?
阅读本文大概需要 1.2 分钟. 作者:h4cd 来源:开源中国社区 开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告. 当前使用量最大的 Java 版 ...
- Day8:html和css
Day8:html和css 显示和隐藏: display: none 为 无,隐藏元素 display: block 为 显示元素 转换为块级元素 visibility: visible 显示 vis ...