文章目录
前言
最近学习了ISP自动白平衡-动态阈值算法,这里分享给大家。
1. 动态阈值算法步骤
动态阈值算法主要分为两步:白点检测与白点调整。
白点检测:
- 将图像转换到YCrCb颜色空间,然后对图像进行分块, 3 × 4 3\times 4 3×4共12块;
- 对每块统计Cr, Cb均值 M c r , M c b M_{cr}, M_{cb} Mcr,Mcb;
- 根据步骤2计算的均值统计每块Cr, Cb的方差 D c r , D c b D_{cr}, D_{cb} Dcr,Dcb,计算公式:
D c r = 1 N ∑ ( C r ( i , j ) − M c r ) 2 D_{cr} = \frac{1}{N}\sum(Cr(i,j) - M_{cr})^{2} Dcr=N1∑(Cr(i,j)−Mcr)2
D c b = 1 N ∑ ( C b ( i , j ) − M c b ) 2 D_{cb} = \frac{1}{N}\sum(Cb(i,j) - M_{cb})^{2} Dcb=N1∑(Cb(i,j)−Mcb)2
上式 N N N表示当前分块的像素数量, C r ( i , j ) Cr(i,j) Cr(i,j)表示Cr通道像素位置 ( i , j ) (i,j) (i,j)的像素值 - 过滤掉 D c r , D c b D_{cr}, D_{cb} Dcr,Dcb数值较小的分块(这里数值为 0.01 0.01 0.01);
- 统计所有分块的 M c r , M c b , D c r , D c b M_{cr}, M_{cb}, D_{cr}, D_{cb} Mcr,Mcb,Dcr,Dcb的均值作为图像的均值和方差;
- 根据如下条件筛选候选白点并记录该白点的在图像上的索引:
∣ C r ( i , j ) − ( 1.5 ∗ M c r + D c r ) ∣ ≤ 1.5 ∗ D c r \lvert Cr(i,j) - (1.5*M_{cr} + D_{cr}) \rvert \leq 1.5*D_{cr} ∣Cr(i,j)−(1.5∗Mcr+Dcr)∣≤1.5∗D