白平衡之 White Patch 优化
免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。
读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。
本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。
若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。
前言
优化后的White Patch算法结合了多种策略,如忽略过曝像素、局部最大值、多通道平衡调整、颜色分布分析等,以提高算法的准确性和鲁棒性。
一、优化后的算法步骤
步骤 1:过滤过曝像素
为了避免过曝区域对最大白算法的干扰,首先要过滤掉图像中亮度值过高的像素。通过设定一个阈值(如255的90%),忽略这些过曝像素。
1.设定亮度阈值: 对每个像素计算其亮度 L(常用的亮度计算公式是RGB通道的加权和),
2.找到不过曝的最大值: 计算在不过曝像素中的每个通道的最大值,记为 Rmax、Gmax、Bmax:
步骤 2:多通道平衡增益系数计算
为了防止单一通道过度调整,使用RGB三个通道中的最大值作为全局的白色基准值。将所有通道的最大值归一化到最大通道值,以确保色彩平衡。
1.找到最大通道值 k:
2.计算每个通道的增益系数: 根据最大通道值 k,分别计算R、G、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:多尺度调整(可选)
为了减少局部异常亮点对全局色彩调整的干扰,可以采用多尺度处理。通过对图像进行高斯金字塔降采样,计算不同尺度下的最大值,并结合这些尺度的信息进行更精确的调整。
- 多尺度处理: 使用高斯金字塔将图像逐级降采样,每级计算该尺度下的 Rmax、Gmax、Bmax,并结合不同尺度的最大值进行平滑处理,确保亮度变化不会因为局部异常亮点而失真。
步骤 6:后处理
对于某些情况下可能引入的过度校正,可以加入一个平滑系数 α,调整最终的色彩调整力度:
二、MATLAB仿真
算法优化源码