《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记

一、原理

Su Wang于2011年提出基于直方图拉伸的自动白平衡算法,该算法通过自适应拉伸直方图来校正色偏。找到两个颜色通道的阈值,然后拉伸每个通道两个阈值之间的像素值,如式(2-15)。

其中,Cout为像素点的输出值,Cin是像素点的输入值,range是输出的像素值范围, 此处为默认的255。c_min是输入图像单通道最低的像素值,可以默认为0。U和L为两个阈值。阈值U的计算公式如式(2-16)。

其中,up_per为较大像素值的总量占总像素数目的百分比。sum为总的像素 数目。类似地,阈值L的计算公式如式(2-17)

其中,low_per为较小像素值的总量占总像素数目的百分比。通过对成百上千的图 片采用不同的up_per和low_per值进行测试,表明当up_per为99%,low_per为1%时 可以得到最好的白平衡效果。

算法主要包括三个步骤:

第一步按照式(2-8)分别计算出R,G,B通道的颜色直方 图。第二步根据式(2-16)与式(2-17)分别计算出RGB通道的三组阈值:Lr,Ur, Lg, Ug, Lb, Ub。第三步按照式(2-15)分别处理每个像素点的RGB值。

二、伪代码

cpp 复制代码
#cdf为累计直方图,total_pixels=width*height a_min = 0,a_max = 255
# find the first index where the cumulative sum is greater than .01 * total
	for(i = 0;i < 256;i++)
		if((cdf[i] > 0.01 * total_pixels)
			low  = i;
        
# find the first index where the cumulative sum is greater than .99 * total
	for(i = 0;i <256;i++)
		if((cdf[i] > 0.99 * total_pixels)
			high  = i;
			
# STAGE: Histogram Stretching
	for(i = 0;i < height;i++)
		for(j = 0;j < width;j++)
			{
				image(i,j) = ((image(i,j) - low) * a_max / (high - low) + a_min)
				image(i,j) = clip(image(i,j),a_min,a_max);
			}

三、效果

相关推荐
m0_6501082411 小时前
CenterPoint:基于中心点的 3D 目标检测与跟踪框架
论文阅读·自动驾驶·centerpoint·3d目标检测与跟踪·激光雷达点云·中心点3d目标表示
m0_6501082414 小时前
PointPillars:激光雷达点云 3D 目标检测的高效编码器方案
论文阅读·自动驾驶·机器人导航·激光雷达点云检测·激光雷达单模态bev·bev目标检测
xieyan081114 小时前
论文阅读_FinRL-DeepSeek:大语言模型赋能的风险敏感强化学习交易代理
论文阅读·人工智能·语言模型
飞Link14 小时前
【论文笔记】《Improving action segmentation via explicit similarity measurement》
论文阅读·深度学习·算法·计算机视觉
吃吃今天努力学习了吗14 小时前
【论文阅读】Gaussian Grouping: Segment and Edit Anything in 3D Scenes
论文阅读·计算机视觉·3d·3dgs·三维分割
有Li14 小时前
基于深度学习的数字切片扫描仪无标记虚拟染色与人体组织分类|文献速递-文献分享
论文阅读·人工智能·深度学习·分类·医学生
询问QQ:4877392781 天前
三菱Q系列PLC大型自动化生产线程序案例分享
论文阅读
檐下翻书1731 天前
集团组织架构图在线设计 多部门协作编辑工具
大数据·论文阅读·人工智能·物联网·架构·流程图·论文笔记
Charlene Fung2 天前
如何使用 Markdown 生成带参考文献的 PDF
论文阅读·pdf·markdown
张较瘦_2 天前
[论文阅读] AI | 告别“被动救火”:POLARIS让系统学会“主动预判+自我进化”
论文阅读·人工智能