Skip to content

PRNU 校正后仍然有竖线

复制本地路径 | 在线编辑

问题

如题。

原因

  1. 没做 DSNU,没错,有时就是这么简单的原因...
  2. 使用的白纸不好,这种可以通过用多一些的列进行校正
  3. 校正之后,光源改变

光源改变为什么会有竖线

为什么光源改变会有竖线,理论上 PRNU 不是校正各个像素对光响应程度吗?那校正之后,应该光变亮变弱都应该统一响应才对。

你这个问题问得非常关键,而且其实已经触到本质了——PRNU 并不是一个“对任意光都成立的真理”,它是一个“在特定条件下拟合出来的比例因子”。


理论模型 vs 真实相机

你脑子里的模型是这样的(也是教科书模型):

\[ I(x) = g(x)\cdot L \]
  • (g(x)):像素响应(PRNU)
  • (L):光强

所以校正后 和光强无关,完美。


但真实情况是:

\[ I(x) = g(x, L, \lambda, T)\cdot L + o(x, L, T) \]

多了三件要命的东西:

  • (L):亮度相关(非线性)
  • (\lambda):光谱(光源颜色)
  • (T):温度
  • (o(x)):offset(DSNU + 模拟链路)

原因一:PRNU ≠ 常数(随亮度变)

简单来说就是:非线性。像素在不同亮度的响应程度不一样,即像素值随着光源亮度增加,无法完全满足线性的特征。

原因二:光谱变了(非常容易被忽略)

不同列对不同波长响应不同(原因有:):

  • CFA(彩色滤波器)差异
  • 微透镜差异
  • 硅材料响应曲线
  • 模拟链路频响

比如标定用的是:

  • 冷白 LED

但拍的是:

  • 暖光
  • 红色物体
  • 显示屏

这点在线阵上特别严重,因为:

  • 每列结构重复但不完全一致
  • 微小差异被“拉成整条竖线”

原因三:温度

这个倒是少见。

Comments