目录
一. 先看两种方式本质差别
二. 真实镜头 Shading 根本不是圆对称!
三. 径向公式的致命问题
四. 现实世界的 Lens Shading,全是 “非径向” 的
五. Mesh 为什么能搞定一切?
六. 总结
真实镜头的阴影根本不是完美圆对称的,径向公式修不平;只有 Mesh 网格能修任意形状、不对称、偏心、甚至畸形的 Shading。

一. 先看两种方式本质差别
径向公式(比如多项式、cos⁴θ)
- 假设:阴影是同心圆、对称、中心在画面正中间
- 只用一个公式:

- 只跟到中心的距离 r 有关
- 优点:省内存、快
- 缺点:只能修完美对称暗角
Mesh 网格(比如 32×24、64×48 网格)
- 把画面切成很多小格子
- 每个格子存 R/Gr/Gb/B 4 个独立增益
- 像素用双线性插值算增益
- 优点:能修任意形状的 Shading
- 缺点:占一点内存(现在完全不是问题)
二. 真实镜头 Shading 根本不是圆对称!
现实中,这些都会让阴影不对称、偏心、畸形:
镜头组装偏心镜头和 Sensor 不在一条直线 → 暗角偏一边
IR 滤光片倾斜、不平整一边透光好,一边差 → Shading 一边大一边小
镜头模组结构遮挡支架、底座、FPC 遮挡 → 某一角特别暗
Color Shading 本身就不对称R、G、B 暗角中心甚至不重合→ 有的偏左,有的偏右
广角、超广角镜头暗角不是圆,是不规则形状
结果:径向公式 → 怎么拟合都修不平Mesh 网格 → 不管你歪成啥样,都能精准校正
三. 径向公式的致命问题
- 一旦 Shading 不对称→ 校正后一边过亮、一边还暗
- 色偏会更明显
- AWB 统计被破坏
- Demosaic 出伪色
- 画面四角亮度永远不一致
四. 现实世界的 Lens Shading,全是 “非径向” 的
下面这些量产必存在,径向公式完全搞不定:
① 光心不与 Sensor 中心重合(Optical Center Shift)
- 组装时镜头会偏
- 亮斑中心 ≠ 图像中心
- 阴影不是同心圆→ 径向公式直接废
② 机械渐晕不是旋转对称
- 镜筒、隔圈、遮光片不对称
- 光圈叶片遮挡不均
- 左上、右下暗角不一样→ 不是径向
③ Color Shading R/G/B 衰减曲线不一样
- R、G、B 暗角中心、大小、形状都不同
- 径向公式只能给一套系数,无法分通道→ 校正后必偏色
④ Sensor 自身有 PRNU、像素响应不均
- 本身就有区域性亮度差异
- 和 “径向” 毫无关系
⑤ 广角 / 超广角畸变严重
- r 不再线性对应视场角
- 边缘径向模型拟合极差
公式是理想,Mesh 是现实。
五. Mesh 为什么能搞定一切?
Mesh 的本质是:用离散采样,记录真实的 Shading 分布。
标定过程:
不管你的阴影:
- 圆的 / 椭圆的
- 对称 / 偏心
- 左边大 / 右边大
- R 跟 B 中心不一样
Mesh 全都能精准还原。
六. 总结
- 径向公式:只能修理想镜头
- Mesh 网格:能修所有真实镜头、所有组装误差、所有不对称 Shading





