概述
黑电平校正、FPN校正、平场校正、白平衡校正,这四种校正,虽然形成原理和操作方式有不同,但是在实际应用中,经常是交叉的,尤其是在硬件实现时,出于速度以及资源的考虑,会融合起来做,或者使用一种暴力简单的方式来达到效果,在大多数应用场合,并不需要严格的校正,比如线性校正可以代替非线性校正;
原理:
黑电平校正:为什么要黑电平校正,1.sensor的ADC精度和分辨力问题,这两项,导致绝对黑电平时,在允许范围内会有偏差;2.暗电流问题,工艺不可能保证每个像元的特性一致,在不同的温度和曝光时长下,响应也是不同的,所以在不同情况下,即使处于无光照的环境中,像素也会有一定的输出电压;如图是黑电平校正效果
校正前需要根据图像的具体情况进行分析,若图像平面趋于平整,则推荐使用全帧均值;若图像出现一些峰值,有明显突出山峰等,推荐使用中值的方法;若出现某个角的值比较高,可能由于电源或者其他的原因引起的,则推荐使用局部计算的方法;此外,还有自定义、最大值等方法,需要根据不同图像的情况去选择方法,终其目的都是一样的。
也可以使用简单的方法,直接减去黑电平值,校准到0值,这种方法鲁棒性不好,但是简单,节省硬件资源;也可以根据温度和增益的变化实时校正,提前根据特性数据点建立一次函数,在拉流过程中进行曲线校正;
FPN校正:固定模式噪声校正,也叫做暗场校正。
行FPN: 在基于模拟域累加实现的TDI-CMOS图像传感器中。由于模拟累加器电路中存在寄 生电阻和电容,电路失配会导致输出图像在TDI(时间延迟积分)扫描方向(即“沿轨”方向) 亮度不均匀,且呈周期性衰减,突出表现为周期性横条纹。
列FPN:传感器列并行读出电路(模拟累加器和ADC(模数转换器)等)的系统结构由于 工艺偏差很容易出现列与列之间的失配,从而导致输出图像在与TDI扫描方向垂直的方向 (即“跨轨”方向)亮度不均匀,表现为明暗变化的竖条纹。
FPN校正要在极低照环境下进行,也就是黑图。一般来说,人眼对竖条纹更敏感一些,所以在有些资源紧张的应用中,仅做列FPN校正;
FPN校正可以看做FFC校正的一部分;
平场校正(FFC):原因,光线不均匀、镜头中心和边缘响应不一致,sensor固定噪声和响应不均匀噪声等。
平场校正一般用FPN暗场校正和PRNU明场校正进行,平场校正就是以整帧图像的均值或者中值为目标图像,根据每个像素的特性不同,以响应增益gain为系数K和offset偏置B,对每个像素进行校正,从而使得整幅图像看起来很均匀平滑,当然,为了简化计算,节省资源,也可以使用多个相邻的像素使用同一组校准参数。
校正时,可以采用多段校正法将响应曲线分段校正,而更多的是简单暴力的两点校正法,也就是看成线性响应。
在暗场校正中,可以得到均值Vavgb,像素值Vinb;
在明场校正中,可以得到均值Vavgr,像素值Vinr;
可以得到增益响应系数K=(Vavgr-Vavgb)/(Vinr-Vinb);
偏置B=Vavgb-Vinb*K;
将n个像素的每一个像素点的K[n]和B[n]写入一个ram表中,当读取一帧图像时,对每一个像素进行校正Vout=Vin*K+B;
白平衡校正:涉及到色温,不同场景下色温不同,校正系数也不同,并且,不同的sensor校正系数也有一些差异,一般来说,实际应用只需要满足一种常用色温下的校正;
人眼会默认白色色块的RGB分量值是相等的,所以将RGB三个通道各自的均值算出,Ravg、Gavg、Bavg,加入像素位宽8bit,那么认为中间值是128,kR=128/Ravg,kG=128/Gavg,kB=128/Bavg,得到系数k,输出像素Rout=Rin*k,G和B通道同理。这种方法叫灰度世界法,根本是用中间值128做归一化。
部分引用来自下面:
————————————————
原文链接:https://blog.csdn.net/xiaoyouck/article/details/72824534
https://www.cnblogs.com/qiqibaby/p/8602082.html
最后
以上就是还单身书本为你收集整理的黑电平校正、FPN校正、平场校正、白平衡校正的全部内容,希望文章能够帮你解决黑电平校正、FPN校正、平场校正、白平衡校正所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复