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

白平衡之 White Patch 优化

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。


前言

优化后的White Patch算法结合了多种策略,如忽略过曝像素、局部最大值、多通道平衡调整、颜色分布分析等,以提高算法的准确性和鲁棒性。


一、优化后的算法步骤

步骤 1:过滤过曝像素

为了避免过曝区域对最大白算法的干扰,首先要过滤掉图像中亮度值过高的像素。通过设定一个阈值(如255的90%),忽略这些过曝像素。

      1.设定亮度阈值: 对每个像素计算其亮度 L(常用的亮度计算公式是RGB通道的加权和),

     2.找到不过曝的最大值: 计算在不过曝像素中的每个通道的最大值,记为 Rmax​、Gmax​、Bmax​:

步骤 2:多通道平衡增益系数计算

为了防止单一通道过度调整,使用RGB三个通道中的最大值作为全局的白色基准值。将所有通道的最大值归一化到最大通道值,以确保色彩平衡。

    1.找到最大通道值 k:

   2.计算每个通道的增益系数: 根据最大通道值 k,分别计算R、G、B通道的增益系数 k_{R}k_{G}​、k_{B}​:

步骤 3:图像颜色调整

使用上一步计算得到的增益系数,对图像中的每个像素进行颜色调整。

     1.颜色调整公式: 对于每个像素的RGB值,应用增益系数进行调整:

这里,R′、 G′、B′ 分别是调整后的像素值,R、G、B 是原始像素值。调整后的像素值必须限制在0到255之间。

步骤 4:基于灰度世界的进一步平衡

为了增强整体色彩的平衡性,结合灰度世界假设,即假设图像的平均颜色应接近中性灰色(即 R=G=B),从而进一步调整RGB通道的比例。

 1.计算图像的平均颜色: 计算整个图像中每个通道的平均值:

 2.调整RGB比例: 通过均衡各通道的平均值,使它们趋于相同,即调整后的RGB通道应使 Rˉ=Gˉ=Bˉ。可以通过简单的线性调整达到目的:

步骤 5:多尺度调整(可选)

为了减少局部异常亮点对全局色彩调整的干扰,可以采用多尺度处理。通过对图像进行高斯金字塔降采样,计算不同尺度下的最大值,并结合这些尺度的信息进行更精确的调整。

  1. 多尺度处理: 使用高斯金字塔将图像逐级降采样,每级计算该尺度下的 Rmax​、Gmax​、Bmax​,并结合不同尺度的最大值进行平滑处理,确保亮度变化不会因为局部异常亮点而失真。
步骤 6:后处理

对于某些情况下可能引入的过度校正,可以加入一个平滑系数 α,调整最终的色彩调整力度:

二、MATLAB仿真

算法优化源码



http://www.mrgr.cn/news/54351.html

相关文章:

  • 聚铭网络入选工信部《工业互联网与电力行业融合应用参考指南》推荐企业
  • el-table表格里面有一条横线
  • 网站分享丨UU在线工具
  • 苹果仍在研发更大尺寸的 iMac | Swift 周报 issue 60
  • 引领智慧文旅新纪元,开启未来旅游新境界
  • 如何使用八爪鱼爬取有价值的商业数据?
  • 2024软考网络工程师笔记 - 第11章.网络管理
  • 深入理解WebSocket协议原理、实现与应用
  • 基于海思soc的智能产品开发(开篇)
  • snmpdelta使用说明
  • 手动部署并测试内网穿透
  • KMP 算法
  • 23 Shell Script服务脚本
  • go中阶乘实现时递归及迭代方式的比较
  • 【MySQL】提高篇—索引与性能优化:如何创建与管理索引
  • go 中的斐波那契数实现以及效率比较
  • LeetCode题练习与总结:摆动排序 Ⅱ--324
  • 系统架构设计师教程 第18章 18.7 系统架构的脆弱性分析 笔记
  • 智能农业:科技推动的现代农业革命
  • STM32应用详解(3)GPIO应用之通过IO端口读取按键的状态
  • TypeScript
  • Spark安装
  • 教电脑“看”图片
  • 【4046倍频电路】2022-5-15
  • Linux操作系统切换设置系统语言
  • 用HTML标签承载页面内容:前端开发的基础知识