AWB学习记录

主要参考食鱼者博客:https://blog.csdn.net/wtzhu_13/article/details/119301096,以及相关的论文,感谢食鱼者老师整理分享。

灰度世界和完全反射

灰度世界法和完全反射法分别是基于(Rmean, Gmean, Bmean)和(Rmax, Gmax, Bmax)来进行白平衡校正。具体校正公式也比较灵活,增益可以是Gmean/Rmean或者max(Rmax, Gmax, Bmax)/Rmax,应该没有很确切的方法定义,而只是两种校正思路。

QCGP

QCGP认为上述两种思路各有适用场景,所以希望融合。融合的方式是“二次正交”。

以往的校正都是线性增益,可以表示为R'=R_{gain}*R。我们现在想融合两种方法,最先想到的会是将灰度世界所得增益和完全反射所得增益求平均,作为融合的增益。但是这种方式事实上是丢失信息的,因为只考虑二者的平均,没考虑差异。于是不能用这种线性加权的方式。

QCGP中引入两个参数的方式是二次正交。定义全新校正公式为R'=uR^2+vR,且给这个融合的校正公式输入R_{mean},则输出应该为R'_{mean}=\frac{r_{mean}+g_{mean}+b_{mean}}{3}。而输入R_{max}也同理得到R'_{max}=\frac{r_{max}+g_{max}+b_{max}}{3}。如此可以列出如下二元二次方程组,解得u和v两个参数。

\left\{\begin{matrix}R_{mean}'=uR_{mean}^2+vR_{mean} \\R_{max}'=uR_{max}^2+vR_{max}\end{matrix}\right.

模糊逻辑算法

不仅算法名字比较模糊,原论文A Method Of Automatic White Balance Using Fuzzy Logic和食鱼者老师讲的也都很模糊。我仅总结思路和考虑的方面。

总的来说,需要在Cr-Cb空间中找一个点来评价当前图像,所谓的白平衡即Cr=Cb=0,我们的任务是通过调整增益来使得调整后的图像评价为Cr=Cb=0。

评价的方式原文给了很详细的说明,逻辑如下:

  1. 分为8块,每块求各像素点的Cr-Cb值加权平均(对应到Cr-Cb空间中的一个点)
  2. 将8块的值加权求和,得到的即为整张图像的平均值。
  3. 第2步所提到的权值考虑的方面有:1)本块Cr值与周围块的Cr值偏差小,则本块的权重小。因为同属于一个大物体,所以此做法可以避免过度补偿。2)暗部和亮部的权重小。这样可以防止饱和测量值和低亮度下的噪声影响白平衡校正。3)每个块内部算平均Cr-Cb的时候,暗色的权重比亮色的小。

不过原文中并未给出校正的具体形式(是Cr'=K*Cr吗?),也未说明如何调整增益(K增大还是减小?),我暂时也不加探究,只知道其是一种迭代算法,每次调整后计算评价指标,评价指标符合条件时退出。

基于白点的方法

使用YUV空间做白点检测,将白点矫正为r=g=b

基于色温的方法

食鱼者老师又没给我讲懂,感觉他的讲解没点透本质。以下内容是我根据论文自己重新总结的。

Digital camera auto white balance based on color temperature estimation clustering

估计小块的色温

论文认为一个色温T可以对应一种H=\frac{B}{R}的比例,记为H(T)。函数H(T)是根据不同色温下拍摄灰卡测定的,它是一个单调的曲线,所以对于给定的RGB值,其色温就等于T=H^{-1}(\frac{B}{R})

论文中提到一大堆公式,其本质就是H(T)的一种解析式。

估计图像的色温

如以上所示,得到若干小块色温。给常用灯光的色温列个表,用小块色温给列表中的色温投票,得票高者为最终估计的图像色温。

根据色温作白平衡校正

论文没提,所以即使把色温利用独立传感器准确测得,我也不知道怎么用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多任务学习的显著优势!

多任务学习是一种机器学习技术,它允许模型同时学习多个相关任务。与不进行多任务的整体学习(单任务学习)相比,多任务学习具有多个显著优势。 首先,多任务学习可以提高学习效率和速度。在并行学习中,多个任…

数组和指针的联系(C语言)

数组和指针是两种不同的数据类型,数组是一种构造类型,用于存储一组相同类型的变量;而指针是一种特殊类型,专门用来存放数据的地址。数组名除了sizeof(数组名)和&数组名表示整个数组外,其他情况下都表示的是首元素的…

profinet协议基础

文章目录 工业以太网自动化通讯金字塔工业以太网技术比较 profinet概述profinet特性 EtherNet通信EtherCAT通信EtherCat特性EtherCat过程同步 工业以太网 工业以太网是基于IEEE 802.3 (Ethernet)的强大的区域和单元网络。 自动化通讯金字塔 各个组织与工业以太网 工业以太网…

DP10RF001一款工作于200MHz~960MHz低功耗、高性能、单片集成的(G)FSK/OOK无线收发芯片

产品概述. DP10RF001是一款工作于200MHz~960MHz范围内的低功耗、高性能、单片集成的(G)FSK/OOK无线收发机芯片。内部集成完整的射频接收机、射频发射机、频率综合器、调制解调器,只需配备简单、低成本的外围器件就可以获得良好的收发性能。芯片支持灵活可设的数据包…

JavaEE初阶Day 10:多线程(8)

目录 Day 10:多线程(8)单例模式阻塞队列1. 生产者消费者模型1.1 生产者消费者模型解耦合1.2 生产者消费者模型削峰填谷 2. 生产者消费者代码3. 阻塞队列实现 Day 10:多线程(8) 单例模式 单例模式&#xf…

SQL Server Management Studio 显示行号

前言 在使用 SQL Server Management Studio (SSMS) 进行数据库管理和查询时,能够看到代码的行号是非常有用的。这可以帮助您更容易地定位代码错误、讨论特定的代码行,或者在执行长查询时快速找到特定行。在本文中,我将向您展示如何在 SSMS 中…

2024年华中杯数学建模竞赛ABC题思路分析

简单分析一下各个题目可能需要用到的方法和模型,完整代码和成品论文见文末 A题 太阳能路灯光伏板的朝向设计问题: 1. 球面几何、天文学相关知识,如赤纬角、太阳高度角、时角等概念和公式 2. 太阳辐射模型,根据太阳能辐射强度、大气衰减系数等计算地表太阳辐射强度…

蓝桥杯第十五届javab组个人总结

javab组 额今天早上打完了得对自己此次比赛做总结,无论是明年还参赛还是研究生蓝桥杯,体验感有点差,第一题其实一开始想手算但怕进位导致不准确还是让代码跑了,但跑第202420242024个数(被20和24整除)一直把…

【网络编程】Web服务器shttpd源码剖析——线程池调度

hello !大家好呀! 欢迎大家来到我的网络编程系列之web服务器shttpd源码剖析——线程池调度,在这篇文章中,你将会学习到在Linux内核中如何创建一个自己的并发服务器shttpd,并且我会给出源码进行剖析,以及手绘…

FebHost:注册.CA域名的企业有什么限制?

在加拿大,只要满足加拿大互联网注册管理局的“加拿大注册要求”,任何类型的企业都可以注册.CA域名。这些要求的目的是为了确保.CA域名空间作为一个重要的公共资源得到合理的使用和开发,以促进所有加拿大人的社会和经济发展。 以下是一些主要…

docker安装EelasticSearch、目录权限修改、并安装IK 中文分词器

文章目录 docker安装EelasticSearch、目录权限修改、并安装IK 中文分词器1、docker安装ES2、docker ps发现容器没有正常启动,docker logs 容器id 查看日志发现是挂载目录的权限不足3、修改目录的权限4、使用docker restart 容器id重新启动刚才没有启动成功的容器5、…

Leetcode 4.18

Leetcode 1.无重复字符的最长子串2.最长回文子串3.整数反转4.字符串转换整数 (atoi)5.正则表达式匹配 1.无重复字符的最长子串 无重复字符的最长子串 滑动窗口,先让右指针右移,如果发现这个子串有元素和右指针当前元素重复。 则: 左指针右移…

【嵌入式之中断】

Cortex-M4集成了嵌套式矢量型中断控制器(Nested Vectored Interrupt Controller (NVIC))来实现高效的异常和中断处理。NVIC实现了低延迟的异常和中断处理,以及电源管理控制。它和内核是紧密耦合的。 凡是打断程序顺序执行的事件都称为异常(exception&am…

极狐GitLab x LigaAI,AI 时代研发提效新范式

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 近日,极狐GitLab 和 LigaAI 宣布合作,双…

CentOS 7安装Zookeeper

说明:本文介绍如何在CentOS 7操作系统下使用Zookeeper 下载安装 首先,去官网下载所需要安装的版本,我这里下载3.4.9版本; 上传到云服务器上,解压 tar -xvf zookeeper-3.4.9.tar.gz修改配置 进入Zookeeper目录下的co…

【技术变现之道】如何打造IT行业的超级个体?

前言 在当今的数字化时代,IT行业蓬勃发展,为具备技术专长的个人提供了无限的可能性。想要成为IT行业的超级个体,实现知识与技能的变现吗?以下是一些高效途径,助你一臂之力! 1. 独立接单外包 1&#xff09…

vue3数字滚动组件

效果图 一、安装插件 npm i vue3-count-to 二、components文件夹下新建BaseCountTo.vue文件 <template><BaseCountTo :endVal"endVal" :decimals"decimals" /> </template> <script setup > import { defineComponent, watch, r…

改手机IP地址的软件推荐

随着移动互联网的普及&#xff0c;手机已成为人们日常生活中不可或缺的一部分。而在使用手机的过程中&#xff0c;IP地址作为一个重要的网络标识&#xff0c;有时也需要进行修改或更改。为了满足这一需求&#xff0c;市面上涌现出了许多改手机IP地址的软件。虎观代理将对这些软…

韩顺平Java | C27 正则表达式

入门介绍 需求&#xff1a;提取文本中某类字符 传统方法&#xff1a;遍历每个字符&#xff0c;判断其是否在ASCII码中某种类型得编码范围内&#xff0c;代码量大&#xff0c;效率不高 正则表达式(RegExp, regular expression)&#xff1a;处理文本的利器&#xff0c;是对字符…

java混淆的公司有哪些

一些提供 Java 混淆服务的公司包括&#xff1a; PreEmptive Solutions&#xff1a;PreEmptive Solutions 提供了一系列用于保护 Java 和 .NET 应用程序的工具&#xff0c;包括混淆、代码压缩、加密和漏洞检测等功能。 DexGuard&#xff1a;DexGuard 是 Guardsquare 公司推出的…