基于色温映射与普朗克轨迹的高精度自动白平衡校正系统
本系统是一套专门用于纠正图像偏色的MATLAB处理程序。它通过物理色温模型与普朗克轨迹的相关性,对图像背后的光源环境进行高精度识别与色彩补偿。与传统的“灰色世界算法”不同,本程序结合了动态白点筛选与关联色温(CCT)计算技术,能够有效处理复杂光照环境下的图像,避免大面积单色背景导致的色彩失真。
功能特性
- 智能图像识别:支持多种常见图像格式,并在缺失输入时具备自动生成模拟低色温偏色图像的演示功能。
- 动态白点检测:通过YCbCr空间的亮度与色度统计特性,自动定位图像中的真实中性颜色区域。
- 物理精度建模:利用CIE XYZ空间映射及McCamy算法,实现对关联色温(CCT)的量化估算。
- 线性增益补偿:基于普朗克轨迹特征,对红、绿、蓝三个通道进行精确的权重缩放处理。
- 结果可视化:提供原始图像与校正图像的直观对比,并实时输出核心物理参数。
系统要求
- 运行环境:MATLAB R2016a 或更高版本。
- 基础工具箱:Image Processing Toolbox(图像处理工具箱)。
- 硬件能力:标准商业电脑即可满足运行需求。
实现逻辑与算法细节
系统的核心处理流程严格遵循以下步骤:
- 图像预处理
程序首先读取待处理图像,并将其转换为双精度浮点数(double)格式进行运算。若用户未选择文件,系统将利用内置图像生成一个模拟了低色温(偏暖色调)环境的偏色样本。
- 颜色空间转换
为了准确分离亮度与色度信息,系统使用标准的RGB到YCbCr转换矩阵。该步骤通过线性变换将彩色信息投影到色差分量上,为后续的白点筛查提供数学基础。
- 动态白点检测技术
算法并非简单选取最亮点,而是结合了统计学的筛选策略:
- 首先计算Cb和Cr分量的全局均值与绝对偏离度。
- 设计动态阈值公式,筛选出亮度足够高且色度分量接近中性区域的像素作为候选白点。
- 具备鲁棒性保护机制:若满足条件的候选点不足总像素的0.1%,系统会自动退化为选取亮度前1%的像素点,以确保算法不失效。
- 色温估算与普朗克轨迹建模
这是本系统的核心创新点:
- 将检测到的白点平均RGB值转换至CIE 1931 XYZ颜色空间。
- 计算出对应的色度坐标 (x, y)。
- 应用McCamy公式,通过三次多项式计算坐标与普朗克轨迹的偏离程度,从而得出估算的关联色温(K值)。
- 通道增益校正
根据检测到的白点区域,计算各通道的平均响应:
- 以绿色通道为基准,计算红、蓝通道的修正增益。
- 采用线性补偿方案,通过调整R/G和B/G的比例使白点回归中性灰色。
- 在校正后进行亮度拉伸与防过曝处理,确保像素值严格限制在[0, 1]安全范围内。
- 数据输出与可视化
系统通过图形化界面展示校正前后的视觉差异,并在命令行窗口详细输出估算的CCT色温值、CIE坐标点以及最终采用的RGB增益系数,实现算法过程透明化。
关键数学模型说明
- 空间变换:利用3x3矩阵实现从RGB到XYZ的色度映射。
- CCT估算:使用McCamy经验公式,该公式在计算2856K到6500K范围内的光源色温时具有极高的可靠性。
- 自动化补偿:基于灰度平衡原理,通过归一化处理确保色彩还原的自然度。