PRNU 校正后仍然有竖线
复制本地路径 | 在线编辑
问题
如题。
原因
- 没做 DSNU,没错,有时就是这么简单的原因...
- 使用的白纸不好,这种可以通过用多一些的列进行校正
- 校正之后,光源改变
光源改变为什么会有竖线
为什么光源改变会有竖线,理论上 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
但拍的是:
- 暖光
- 红色物体
- 显示屏
这点在线阵上特别严重,因为:
- 每列结构重复但不完全一致
- 微小差异被“拉成整条竖线”
原因三:温度
这个倒是少见。