首页 > 编程语言 >【阅读笔记】一种暗通道优先的快速自动白平衡算法

【阅读笔记】一种暗通道优先的快速自动白平衡算法

时间:2023-07-27 22:35:15浏览次数:44  
标签:白色 笔记 算法 区域 白平衡 图像 通道

解决问题:

自动白平衡算法中存在白色区域检测错误导致白平衡失效的问题,作者提出了一种基于暗通道优先的白平衡算法。

算法思想:

图像中白色区域或者高饱和度区域的光线透射率较低,根据以上特性利用暗通道法计算图像中白色区域。

算法概述:

作者使用何凯明提出的基于暗通道优先的方法来估计光照透射模型,通过估计到的光照透射模型来计算图像中白色区域,在检测到白色区域后,相对于图像的亮度分量 Y 来计算每个颜色通道的增益值。

如果图像中存在比较强的光源或者高饱和度的区域,这些区域就会被错误检测为白色区域,作者设置一个阈值来去除高饱和度区域。

$$
\lbrace (x,y) = 255;\qquad if\quad t(x,y)<t_{1} 且g^{c}(x,y)<K \
\lbrace(x,y) = 0,\qquad \qquad otherwise

$$

其中,$t(x,y)$是对应白色区域与之变换的二值化图像,$K$是变换阈值

$t_{1}$是平均透射率

$$
t1=\frac{1}{W*H}\sum_{x=0}{W-1}\sum_{y=0} t(x,y)
$$

终 K 的值选择为 230,即大于 230 认为是过饱和区域

参考效果

测试代码

感兴趣的可以跑一跑效果,测试代码路径:

https://github.com/AomanHao/AomanHao_example_of_algorithms/tree/main/z-source/2018_A fast automatic white balance algorithm base on dark channel priority

参考文献:

《一种暗通道优先的快速自动白平衡算法》DOI: 10.12086/oee.2018.170549170549-1

源代码:

GitHub - oraclBH/auto_white_balance: A white balance algorithm based on dark channel priority.

觉得本文对您有一点帮助,欢迎讨论、点赞、收藏,您的支持激励我多多创作。


我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

标签:白色,笔记,算法,区域,白平衡,图像,通道
From: https://www.cnblogs.com/AomanHao/p/17586284.html

相关文章

  • 初等数论学习笔记
    前言更熟悉的阅读体验?前置知识(这个应该很显然):\(\operatorname{lcm}(a,b)=\dfrac{ab}{\gcd(a,b)}\)线性筛素数直接上代码。constintMAXN=100000008;boolnp[MAXN];vector<int>prm,pre;voidgg(constintN=100000000){ pre.resize(N+1); for(inti=2;i<=N;i++){ if......
  • 算法学习笔记(24): 狄利克雷卷积和莫比乌斯反演
    狄利克雷卷积和莫比乌斯反演看了《组合数学》,再听了学长讲的……感觉三官被颠覆……目录狄利克雷卷积和莫比乌斯反演狄利克雷卷积特殊的函数函数之间的关系除数函数和幂函数欧拉函数和恒等函数莫比乌斯函数和欧拉函数卷积的逆元莫比乌斯函数与莫比乌斯反演求法数论分块(整除分......
  • 算法学习(一)—— 如何看待数据结构与算法
    绪言最近在通过阅读K神的《Hello算法》学习数据结构与算法的知识,同时做一些博客笔记记录,方便日后的查找和复习算法数据结构与算法统称算法认识算法算法更多的是一种逻辑,例如:查阅字典的原理与二分查找算法相一致。二分查找体现了分而治之的重要算法思想。整理扑克的过......
  • Android开发笔记:屏幕适配
    这几天刚刚接触了新的项目,做一个android客户端。本周的工作是完成客户端的UI界面和功能实现,但是对于Android开发最头疼的部分,即是对于纷杂的屏幕做适配的工作现在来说是最棘手的!图像显示所需的概念:像素:一幅图片的显示就是由许多显示着不同颜色的小方格组成的,这样的小方格就被称......
  • C#与Java互通AES算法加密解密
    C#需要引用System.Security.Cryptography命名空间///<summary>AES加密</summary>///<paramname="text">明文</param>///<paramname="key">密钥,长度为16的字符串</param>///<paramname="iv">偏移量,长度为16的字符串<......
  • DINIC算法模板
    //定义一个名为F的网络流:NetWorkFlowF(n,S,T);//复杂度V^2*EstructNetWorkFlow{structFlownode{intvi,id;intwi;};intS,T;constintinf=0x3f3f3f3f;std::vector<int>rk,cur;std::vector<std::vector<Flown......
  • [数据结构笔记] 线性表
    栈栈是一种后进先出(\(\text{LastInFirstOut,LIFO}\))的线性表,顾名思义,后入栈的元素反而先出栈,其限制是只能在一端插入与删除,就像下面这样,只有一端有开口,另一端则是封死的。\[栈顶\large\begin{array}{c|c|c|c|c|c|c|c|{3}{r@{.}l|}}\hline\\text{}0&1&2&3&4&5&6......
  • 虚树学习笔记
    观前须知:本博客中\(k\)均指关键点数量-2前置芝士你需要会基本的dfs序(下简称dfn)及性质,并且要会写LCA(推荐树剖因为快)-1典型特征关键点\(\sumk\le1e5\)之类的很小的数虚树的特点是只保存关键点及其LCA0引入例:\(\color{green}CF613D\)这个树上问题可以说非常......
  • 图片识别算法
    #多类->线性回归frommxnetimportgluonfrommxnetimportndarrayasndimportmatplotlib.pyplotaspltdeftransform(data,label):returndata.astype('float32')/255,label.astype('float32')mnist_train=gluon.data.vision.Fash......
  • 论文解读|Struck算法:基于结构化输出预测的自适应视觉目标跟踪框架
    原创|文BFT机器人01背景本文的背景是关于自适应视觉目标跟踪的研究。在传统的跟踪方法中,通常采用基于检测的方式,即尝试学习一个分类器来区分目标对象和其周围的背景。然而,这种方法存在一些问题,例如需要手动选择特征和参数,容易受到噪声和目标变化的影响。为了解决这些问题,本文提......