一、镜头阴影
当镜头与sensor匹配,因为Sensor感光区的边缘区域接收的光强比中心区域小,所造成的中心和四角亮度不一致的现象。镜头本身就是一个凸透镜,由于凸透镜原理,中心的感光必然比周边多。
镜头阴影不利于后期的画面分析,关键的信息可能就隐藏在这些阴影当中。许多工程师被这个问题困扰过,一般是解决方法是通过修改复杂的后期算法来解决“镜头阴影”。
二、阴影校正
2.1 增益校正-Radial Shading(径向校正)
镜头从中心到边缘的亮度衰减符合用“cos⁴θ”规律,再反过来以图像中心为原点,按半径划分同心圆区域,存储不同半径对应的增益值,给每个像素乘一个半径相关的增益,把暗下去的边角重新拉亮。
为了节省存储资源,增益表格也是缩放处理,例如保存16x16,实际校正时通过插值计算各像素的增益。
2.2 增益校正-Mesh Shading(网格校正)
将图像划分为多个网格(如16×16),计算每个网格顶点的增益值并存储,其他像素通过双线性插值动态计算增益。此方法更灵活,适用于非对称阴影,存储数据更少。
2.3 增益校正-Point Shading(逐点校正)
计算均匀场景下每个像素与图像均值或者最大值的增益值并存储,适用于任何场景阴影,存储数据与分辨率对应,数据很多。
三、增益校正-Radial Shading
3.1 校正原理
数学模型:用半径r rr代替θ θθ
对无畸变针孔模型,θ ≈ a r c t a n ( r / d ) θ ≈ arctan(r/d)θ≈arctan(r/d),d dd为像距。在小角度下
c o s 4 θ ≈ ( d / √ ( d 2 + r 2 ) ) 4 ≈ 1 – 2 ( r / d ) 2 + cos⁴θ ≈ (d / √(d²+r²))⁴ ≈ 1 – 2(r/d)² +cos4θ≈(d/√(d2+r2))4≈1–2(r/d)2+
下图是c o s 4 θ cos⁴θcos4θ增益数值趋势
于是可把增益写成径向多项式
G ( r ) = 1 / c o s 4 θ ≈ 1 + k 1 r 2 + k 2 r 4 + … ( k i > 0 ) G(r) = 1 / cos⁴θ ≈ 1 + k₁r² + k₂r⁴ + … (kᵢ>0)G(r)=1/cos4θ≈1+k1r2+k2r4+…(ki>0)
3.2 校正流程
1、标定:拍均匀白场,算出每个半径 r 的平均亮度 I®。
2、求增益:G ( r ) = I c e n t e r / I ( r ) G(r)=I_center / I(r)G(r)=Icenter/I(r)。
3、降采样:只存 16~32 个“特征半径”的增益,节省内存。
4、在线矫正:对任意像素,先算$ r=√(x²+y²)$,再插值得到G ( r ) G(r)G(r),最后把 RAW 值乘以 $G® $即可。
3.3 校正效果
左图是校正前的原始图,受到光学系统影响暗角比较明显。右图校正后可以一定情况改善四周的暗角。
觉得本文对您有一点帮助,欢迎讨论、点赞、收藏,您的支持激励我多多创作。