当前位置: 首页 > article >正文

如何在白平衡标定种构建不同类型的白平衡色温坐标系

目录

一、预备知识:

二、常见的白平衡色温坐标系

三、白平衡色温坐标系的理解

1)横纵坐标轴分别代表什么含义?

2)色温坐标系中原点表示什么含义?

3)某M/某H的色温坐标为什么是长成这样呢?

4)不同色温坐标系下的白点分布为什么有这样的一个规律?

5)各个色温下白点像素的分布趋势分析

四、构建其他类型的白平衡色温坐标系


一、预备知识:

        Sensor观察到的颜色是由sensor对光的感应(由光谱感应曲线决定)以及入射光源(由光谱功率分布曲线决定)及被观察物体对光源的反射吸收特性所决定的。用数学公式表示如下:

        原理大致可以如下图:

        其中如下图中的A包括上述中I(\lambda )R(\lambda )

        各种光源下的光谱功率分布曲线如下图:

        根据上述公式可知相同颜色在不同光源下其视觉效果会不一样,主要是被观察物体反射的光源进入到sensor的光谱会有差异。因此,理论上如果一个理想的全白色的观察物体把入射光源完全反射到sensor中,那么对于同款sensor感知的颜色主要由入射光源决定。也即由光源的功率谱分布曲线决定。

二、常见的白平衡色温坐标系

某H方案的色温坐标系如下图:

某M方案的色温坐标系如下:

某N方案色温坐标系:

某S方案色温坐标系:

某A方案色温坐标系:

某R方案白平衡色温 坐标系:

        左侧的色温坐标是论文《Automatic White Balance with Color Temperature Estimation》

Po-Min Wang and Chiou-Shann Fuh,所描述的的一种色温坐标系变体。从raw域转为yuv域

右侧Raw域的色温坐标系,类似于某M方案的色温坐标系。

某Q方案白平衡色温坐标系;

在Raw域进行白平衡标定的时候,各家构建的白平衡色温坐标系大体上分为两大类型:

  1. 一种是以某H方案为典型代表构建的白平衡色温坐标系以及以此为模板的各种变体构建的白平衡色温坐标系。变体可能是以G/R-B/G构建色温坐标系或者以log(R/G)-log(B/G)旋转一定角度构建的白平衡色温坐标系;
  2. 一种是以某M方案为典型代表,构建的白平衡色温坐标系以及以此为模板的各种变体构建的白平衡色温坐标系。变体可能是以以R+B-2G为纵坐标,以R-B为横坐标构建色温坐标系或者以以log(R+B-2G)为纵坐标,以log(R-B)为横坐标构建的白平衡色温坐标系。

从理论基础以及各家方案实际的白平衡调试经验来讲,我们得到以下信息或者称之为性质:

  1. 各个色温下白点像素值G分量变化幅度比较小;
  2. 在D50-D65左右色温时,白点像素值R、B 分量数值比较相近;
  3. 从低色温到高色温变化的过程中,白点像素值的R分量从大到小变化,B分量从小到大变化;
  4. 未做白平衡处理时,白点在低色温下表现为暖黄色或者橙红色;白点在低色温下表现为冷蓝色或者青白色;在中色温时接近中性白色;

        以上各家常见的白平衡色温坐标系,基本上都符合上述几点性质。如何通过以上信息,构建其他各种类型的白平衡白点标定坐标系呢?

        或者这个问题可以理解为:在一个黑匣子,当输入不同的色温信息时,输出以上三个观察结果(可能还有更多性质)。如何从观察结果中抽象出一个函数或者利用数学建模建立一个模型,来模拟黑匣子内部的具体实现。虽然抽象出来的函数或者数学模型并不能百分之百的表示黑匣子里面的逻辑,但是抽象出的函数或者建立的模型能够90%准确率,那也基本符合预期了。

        因此,理论上根据上述的信息可以构建无数钟白平衡色温坐标系。

三、白平衡色温坐标系的理解

        基本上传统的白平衡校准方法,都是构建一个合理的白点寻找坐标系实现的。

        初看某M/某H的色温坐标系,内心必然有这样一番灵魂拷问:

  1. 横纵坐标轴分别代表什么含义?
  2. 色温坐标系中原点表示什么含义?
  3. 某M/某H的色温坐标为什么是长成这样呢?
  4. 不同色温坐标系下的白点分布为什么有这样的一个规律?

        那么,以下图的白平衡色温坐标系为例,对上述各个问题进行相应的理论上的解答:

        该色温坐标系以(R+B-2G)/4为纵坐标,以(R-B)/2为横坐标。因此我们可以通过对个Raw域每一个像素点或者分块后的像素点RGB三分量按照如下矩阵映射,将原始像素点排布到以上坐标系中:

        以Dg为横坐标,以 Di为纵坐标构建如上图的色温坐标系。Dg坐标轴中,从左至右表示色温从低到高变化;Di坐标系也称为G-M线,即绿色-洋红色分界线,从上到下表示的是白点像素绿色分量从低到高变化。

1)横纵坐标轴分别代表什么含义?

        我们已知,在D50-D65中色温下白点像素在sensor中的R/G/B响应会大致相等,总体上是G略大于R/B分量,R约等于B分量这样一个趋势。随着色温从低到高增加,R分量数值变化将从高到低变化,B分量数值将从低到高变化。因此:

  1. 横坐标也称之为日光轨迹线,和某H中白平衡标定坐标系中所拟合的普朗克曲线性质相类似。这条线上从左至右色温依次从低色温逐步过渡到高色温。横坐标原点表示的理想中色温或者说自然光下,理想白点像素在中色温或自然光下的响应。在该坐标系下,随着色温从低到高增加,R分量数值变化将从高到低变化,B分量数值将从低到高变化。
  2.  纵坐标应该是G-M线,即绿色--洋红色线。表示的是自然光下,不同颜色在纵坐标的位置。比如纯绿色表示的是纵坐标的负方向无限远处;纯洋红色表示的是纵坐标的正方向无限远处。即可以理解为纵坐标是对观察对象绿色分量的多少的度量。在自然光下当被观察物体绿色分量越多其在纵坐标负半轴的绝对值越大;反之在纵坐标正半轴的绝对值越大。当然在其他光源下那么在上述坐标系下白色像素的落点就不会完全落在纵坐标轴上,会根据不同光源偏离横坐标的距离也不同,将根据不同光源落入在不同纵坐标位置,可能位于纵坐标正半轴,也可能位于纵坐标的负半轴。
2)色温坐标系中原点表示什么含义?

        上述色温坐标系原点表示的是,理想D50---D65色温时白点所处的坐标位置。其他色温的白点都是相对D50---D65色温时白点而言在横纵坐标轴上具有不同偏移量。

3)某M/某H的色温坐标为什么是长成这样呢?

        色温坐标系将根据横纵坐标的具体含义落点分部也会有所不同。

        某M的色温坐标系类似于上述的色温坐标系。某M色温坐标系横轴从左至右表示色温从低到高变化;某M色温坐标系纵轴表示G-M分界线;原点表示的是B=R的白点像素。

        某H的色温坐标系是利用了直角双曲线的形式拟合而成。某H色温坐标系X方向如果没有限制,表示该拟合直线右下角横向的坐标为正向无限远,类似某M色温坐标系中的横坐标负向无限远处;某H色温坐标系Y方向如果没有限制,表示该拟合直线左上角纵向的坐标为正向无限远,类似某M色温坐标系中的横坐标正向无限远处;该色温坐标系中与y=x直线的交点表示的是B=R的白点像素,也即D50-D65色温附近的理想白点像素。

4)不同色温坐标系下的白点分布为什么有这样的一个规律?

        根据色温坐标系横纵坐标轴的不同含义将确定不同色温下白点在该色温坐标系下的分布规律。因此,根据色温坐标系中横纵坐标可以唯一确定外部光源属性。

5)各个色温下白点像素的分布趋势分析

        例如,上述色温坐标系中,对钨丝灯光源而言,根据上图中光源功率分布函数知道,白点像素将会有较多的红色分量,较小的蓝色分量,且分布范围比较宽。因此,钨丝灯下的白点的横坐标位置应该位于横坐标的负半轴远离原点的位置。根据sensor的对三通道的响应曲线可知,G分量相对较多,绝大部分位于纵坐标系中正半轴位置,少部分位于纵坐标下半部分;其最终的白点候选框如上图所示,是一个宽度较宽,矩形框面积的2/3在横坐标上,1/3在横坐标下的矩形区域。

        对暖白色荧光灯而言,根据光源的光谱能量分布可知,绿色和红色光谱具有较强的能量,蓝色光谱具有较小的能量。该光源下的候选白点像素的落点绝大部分位于纵坐标的负半轴,由于属于低色温其横坐标和钨丝灯相当。

        对冷白光荧光灯而言,根据光源的光谱能量分布可知,相对于暖白光荧光灯具有较多的蓝绿色部分具有相对较多的能量,而红色光部分具有较小的能量。因此该光源下白点像素的横坐标值应该相对暖白光荧光灯更靠近原点位置;纵坐标轴基本和暖白色荧光灯接近。

        对于中性白色荧光灯而言,根据光源的光谱能量分布可知,其能量分布呈窄带状分布,绿色和红色光谱具有较强的能量,蓝色光谱具有较小的能量。理论上该光源下白点像素横坐标值应该相对冷白光荧光灯更加远离原点坐标,白点像素纵坐标值大致均匀分布于横坐标两侧。

        对于D50、D65、D75光源而言,这些光源相当于模拟实际的自然光,因此该光源下白点像素纵坐标值大致均匀分布于横坐标两侧;根据光源的光谱能量分布可知,蓝色光谱能量逐渐增强,绿色和红色光谱能量变化幅度较小。随着蓝色光谱能量的增强,其白点像素横坐标值将逐渐向横坐标的正向方向远离原点偏移。

四、构建其他类型的白平衡色温坐标系

        我们根据第二部分的相关性质,我们可以构建如下不同类型的白平衡色温坐标系:

色温坐标系A:

        满足性质1和2:在D50-D65色温附近,R、B分量基本相近;

        满足性质1和3:随着色温的降低,白点位横坐标位于二三象限为负值,即R分量增加而B减小;随着色温的升高,白点位横坐标位于一四象限为正值,即R分量减小而B增加。

        满足性质1和4:在中色温附近,白点像素在原点附近接近中性白色,低色温为暖黄色调,高色温为青蓝色调。

        在理想D50-D65色温下,如果是纯绿色R=B=0,G分量比较大,因此横坐标基本为0,纵坐标为负值;

        在理想D50-D65色温下,如果是纯洋红色R=B,G近似等于0,因此横坐标基本为0,纵坐标为正值;

色温坐标系B:

        满足性质1和2:在D50-D65色温附近,R、B分量基本相近;上述坐标系中横向直线实际上应该靠近原点附近。应该是切与原点两端再向上翘起。

        满足性质1和3:随着色温的降低,白点位横坐标位于一四象限为正值,即R分量增加而B减小;随着色温的升高,白点位横坐标位于二三象限为负值,即R分量减小而B增加。

        满足性质1和4:在中色温附近,白点像素在原点附近接近中性白色,低色温为暖黄色调,高色温为青蓝色调。

色温坐标系C:

        满足性质1和2:在D50-D65色温附近,R、B分量基本相近;相当于对色温坐标系B进行了45度旋转得到。

        满足性质1和3:随着色温的降低,白点位横坐标位于二三象限为负值,即R分量增加而B减小;随着色温的升高,白点位横坐标位于一四象限为正值,即R分量减小而B增加。

        满足性质1和4:在中色温附近,白点像素在原点附近接近中性白色

色温坐标系D:

        满足性质1和2:在D50-D65色温附近,即该色温坐标系的拟合直线和直线y=x相交的点,即为R、B分量基本相近的白点像素点;

        满足性质1和3:随着色温的降低,白点横坐标值增加纵坐标值减小,即R分量增加而B减小;随着色温的升高,白点横坐标减小纵坐标增加,即R分量减小而B增加。

相关文章:

如何在白平衡标定种构建不同类型的白平衡色温坐标系

目录 一、预备知识: 二、常见的白平衡色温坐标系 三、白平衡色温坐标系的理解 1)横纵坐标轴分别代表什么含义? 2)色温坐标系中原点表示什么含义? 3)某M/某H的色温坐标为什么是长成这样呢?…...

Oracle RMAN同步数据库Active database duplicate

Active database duplicate,不需要先把目标数据库进行rman备份,只要目标数据库处于归档模式下即可直接通过网络对数据库进行copy,且copy完成后自动open数据库。这对于大数据特别是T级别的数据库来说优点非常明显,复制前不需要进行…...

Spring MVC 一个简单的多文件上传

原始代码逐行解释 PostMapping("/uploads") // ① 声明处理POST请求,路径为"/uploads" ResponseBody // ② 直接返回数据到响应体,不进行视图解析 public String uploads(MultipartFile[] files, // …...

基于DeepSeek/AI的资产测绘与威胁图谱构建

引言: 在网络安全攻防实践中,资产测绘是红队作战与蓝队安全运营的第一步,其本质都是通过系统性信息采集实现攻击面管理。 当前普遍存在的痛点在于,当企业级资产规模呈指数级增长时,传统基于规则引擎的低效批量处理方式…...

构建自动翻译工作流:技术与实践

一、引言 制药行业客户迫切需要一种翻译解决方案,以解决公司内部多样化的翻译难题。他们需要的不仅是提升翻译效率和准确性的工具,更希望能够保持文档的原始格式。我们观察到客户的需求广泛,包括多语言办公文件、研究文档和药品报批文件等&a…...

【Linux】中的网络管理

目录 1.ipv4原理,网关与DNS定义 2ip图形化配置--nm 2.1图形化平台配置 2.2无图形化平台配置 3.常用的网络命令--ping,wget,curl ping wget curl 4.ip命令临时配置---ifconfig,ip a ifconfig ip address 5.ip命令永久配…...

前端面试每日三题 - Day 10

这是我为准备前端/全栈开发工程师面试整理的第十天每日三题练习,涵盖: JavaScript 中 this 的指向详解与常见陷阱Vue 生命周期钩子的执行顺序与场景实践(Vue2 vs Vue3)系统设计实战:内容推荐系统的核心架构设计 ✅ 题…...

《深度学习》课程之卷积神经网络原理与实践教学设计方案

《深度学习》课程之卷积神经网络原理与实践教学设计方案 一、教学目标设计 (一)知识目标 学生能够准确描述卷积神经网络(CNN)的基本定义,包括其核心组成部分(如卷积层、池化层、全连接层等)及…...

elasticsearch中文分词器插件下载教程

一、下载原因: 我们的业务中通常使⽤的是中⽂分词,es的中⽂分词默认会将中⽂词每个字看成⼀个词⽐如:“我想吃⾁夹馍”会被分为”我”,”想”,”吃”,”⾁” ,”夹”,”馍” 这显然是…...

门面模式与适配器模式

一、门面模式 门面模式:提供统一接口访问子系统接口 1、包含角色 外观系统对外的统一接口子系统类的集合;并不知道外观角色的存在,需要为了配合外观角色而做特殊处理或修改 2、举例 原本开关灯要分别操作各个房间的灯,现在设置总…...

QSS【QT】

文章目录 QSSid选择器 & 类型选择器伪类选择器盒子模型 QSS 设置样式的时候,是可以指定某个控件来设置的。 指定控件之后,此时的样式就会针对这个指定的控件,也会针对子控件生效 ui->pushButton_2->setStyleSheet("QPushButt…...

第十六节:高频开放题-React与Vue设计哲学差异

响应式原理(Proxy vs 虚拟DOM) 组合式API vs Hooks React 与 Vue 设计哲学差异深度解析 一、响应式原理的底层实现差异 1. Vue 的响应式模型(Proxy/数据劫持) Vue 的响应式系统通过 数据劫持 实现自动依赖追踪: • …...

css 中float属性及clear的释疑

float属性可以让元素脱离文档流&#xff0c;父元素中的子元素设置为float,则会导致父元素的高度塌陷。 <style type"text/css"> .father{ /*没有给父元素定义高度*/background:#ccc; border:1px dashed #999; } .box01,.box02,.box0…...

缓存 --- 内存缓存 or 分布式缓存

缓存 --- 内存缓存 or 分布式缓存 内存缓存&#xff08;In-Memory Cache&#xff09;分布式缓存&#xff08;Distributed Cache&#xff09;内存缓存 vs 分布式缓存 内存缓存和分布式缓存是两种常见的缓存策略&#xff0c;它们在存储位置、访问速度和适用场景上有所不同。下面分…...

2025.4.17总结

工作&#xff1a;今天对需求的测试设计进行了完善&#xff0c;然后&#xff0c;对测试设计进行了评审&#xff0c;最后提了个问题单。 反思这个过程&#xff0c;要说不足的地方&#xff0c;就是评审的时候总觉得自己吐字不清晰&#xff0c;表达能力早就想提升了&#xff0c;但…...

BH1750光照传感器---附代码

目录 BH1750简介BH1750指令集BH1750工作流程 BH1750简介 VCC-->电源正&#xff1b; ADDR-->地址端口&#xff1b; GND-->电源负&#xff1b; PA5-->SDA-->I2C数据线&#xff1b; PA3-->SCL-->I2C时钟线&#xff1b; DVI-->I2C端口参考电压&#xff1b…...

机器学习在催化剂设计中的应用理论加实操

背景介绍​​ 数据智能驱动&#xff0c;催化理性设计新纪元​​ 催化材料设计是能源转化、化工合成及环境治理等领域的核心挑战。传统催化研究主要依赖密度泛函理论(DFT)计算与实验试错法&#xff0c;通过量子力学模拟揭示活性位点电子结构&#xff0c;结合高通量实验筛选候选…...

蔡浩宇的AIGC游戏革命:从《原神》到《Whispers》的技术跨越

目录 引言&#xff1a;游戏行业的AI革命前夜 一、《Whispers》的技术突破与市场挑战 1.1 多模态AI技术的集成应用 1.2 与传统游戏的差异化体验 1.3 面临的商业化难题 二、从《原神》到《Whispers》的技术演进 2.1 《原神》成功的时代因素分析 2.2 蔡浩宇的技术路线转变 …...

Docker Compose 命令实现动态构建和部署

Docker Compose 命令实现动态构建和部署 一、编写支持动态版本号的 docker-compose.yml version: 3.8services:myapp:build: context: . # Dockerfile所在目录args:APP_VERSION: ${TAG:-latest} # 从环境变量获取版本号&#xff0c;默认latestimage: myapp:${TAG:-latest} …...

前端vue+typeScritp+elementPlus基础页面实现:

效果&#xff1a; 前端代码&#xff1a; index.vue: <template><el-container><el-main><el-card class"search-card" shadow"never"><transition :enter-active-class"proxy?.animate.searchAnimate.enter" :le…...

leetcode第20题(有效的括号)

思路解析&#xff08;使用栈&#xff09;&#xff1a; 使用一个栈来保存左括号。 每当遇到一个右括号时&#xff0c;检查栈顶元素是否是匹配的左括号。 如果匹配&#xff0c;则弹出栈顶元素&#xff1b; 如果不匹配或者栈为空&#xff0c;则说明无效&#xff1b; 最后如果栈…...

超简单的git学习教程

本博客仅用于记录学习和使用 前提声明全部内容全部来自下面廖雪峰网站&#xff0c;如果侵权联系我删除 0.前言 相信有不少人被推荐那个游戏学习git&#xff0c;一个不止我一个完全没学习过的进去后一脸懵&#xff0c;半天都通不过一关然后就放弃了&#xff0c;我个人觉得那个…...

【DVWA File Upload 漏洞实战指南】(Low / Medium / High 全级别解析)

前言 文件上传功能是 Web 应用中非常常见的一种功能&#xff0c;用于上传头像、文档、图片等文件。但如果验证不当&#xff0c;攻击者可能上传恶意脚本&#xff0c;进而控制服务器。在 DVWA 中&#xff0c;File Upload 模块专门设计用于演练此类漏洞的不同防御等级。 一、Low …...

iPhone 13P 换超容电池,一年实记的“电池循环次数-容量“柱状图

继上一篇 iPhone 13P 更换"移植电芯"和"超容电池"&#x1f50b;体验&#xff0c;详细记录了如何更换这两种电池&#xff0c;以及各自的优略势对比。 一晃一年过去&#xff0c;时间真快&#xff0c;这次分享下记录了使用超容电池的 “循环次数 - 容量(mAh)…...

Django 使用教程

Django 使用教程 Django 是一个高级的 Python Web 框架&#xff0c;采用了 MTV&#xff08;Model-Template-View&#xff09;设计模式&#xff0c;旨在帮助开发者快速构建高效、可维护的 Web 应用。它有着非常丰富的功能&#xff0c;包括 ORM、用户认证、表单处理、管理后台等…...

【集群IP管理分配技术_DHCP】一、DHCP技术概念与快速上手

在网络技术飞速发展的今天&#xff0c;动态主机配置协议&#xff08;DHCP&#xff09;作为网络中自动分配 IP 地址及相关配置参数的重要工具&#xff0c;极大地简化了网络管理流程。然而&#xff0c;随着网络规模的不断扩大和应用场景的日益复杂&#xff0c;传统 DHCP 在灵活性…...

Tailwindcss 入门 v4.1

以 react 为例&#xff0c;步骤如下&#xff1a; npm create vitelatest my-app -- --template react 选择 React 和 JavaScript 根据上述命令的输出提示&#xff0c;运行以下命令 cd my-app npm install npm run dev 一个 React App 初始化完成。 安装 Tailwindcss theme …...

【Linux】NAT、代理服务、内网穿透

NAT、代理服务、内网穿透 一. NAT1. NAT 技术2. NAT IP 转换过程3. NAPT 技术4. NAT 技术的缺陷 二. 代理服务器1. 正向代理2. 反向代理3. NAT 和代理服务器 内网穿透内网打洞 一. NAT NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&a…...

PCA——主成分分析数学原理及代码

主成分分析 PCA的目的是&#xff1a;对数据进行一个线性变换&#xff0c;在最大程度保留原始信息的前提下去除数据中彼此相关的信息。反映在变量上就是说&#xff0c;对所有的变量进行一个线性变换&#xff0c;使得变换后得到的变量彼此之间不相关&#xff0c;并且是所有可能的…...

AWS EC2完全指南:如何快速搭建高性能云服务器?

一、什么是AWS EC2&#xff1f;云时代的虚拟服务器革命 AWS Elastic Compute Cloud&#xff08;EC2&#xff09;作为全球领先的云服务器解决方案&#xff0c;正在重新定义虚拟服务器的可能性。与传统VPS相比&#xff0c;EC2提供&#xff1a; 秒级弹性扩展&#xff1a;CPU/RAM按…...