本文主要是介绍基于opencv 纹理图/枯叶图 MTF/ACUTANCE评测算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.有SFR算法为何还要引入基于纹理图的MTF/ACUTANCE评测算法?
如果使用的raw数据,只用sfr测试不同频率的mtf是完全可以的。但如果经过isp处理后,因为存在降噪/锐化处理,并不能真正体现纹理和边缘的实际表现。
例如:
在相机 A 上,边缘和纹理的清晰度似乎相等。纹理中可以看到许多细节。
在相机 B 上,边缘经过了ISP数字增强,SFR 转换看起来过于清晰。边缘Ring也是处理的产物。在纹理部分,相机 A 上可见的许多细节在相机B上都消失了。
猛地一看,边缘清晰度测量第二台相机更清晰。但仔细检查对比度纹理表明,相机 A 比相机 B 更好地保留了精细的细节。
纹理图评测方法的目的是量化这种差异。
2.如何使用 纹理图/枯叶图 chart来评判camera 再现细节的能力?
Ⅰ在实验室打光拍摄纹理图后可以直接用imatest来计算MTF/ACUTANCE,只要设置好imatest的纹理图类型,就可以计算出结果,包括MTF曲线和锐度。
Ⅱ也可以使用opencv或matlab自己写一段程序完成计算,我使用的是opencv,便于工程应用
原理如下:1.计算拍摄图的PSDi
2.计算标准chart的PSDcalib,或从商家拿到已有的标定的PSD数据
3.MTF=PSDi/PSDcalib,得到MTF
4.CSF计算如下
其中v is in cycles/degrees,其它都是固定系数。
5.根据A=(MTF*CSF积分)以及Ar=(CSF积分),通过A/Ar计算Acutance,这一步
注意cycles/pixel与cycles/degree这两个量纲的转换。
6.以上为了增加准确性,还需要考虑进去噪声的影响。
评判标注如下:
3.附一段结果和伪代码:
0. 实拍纹理图
1.PSDi
2.PSDcalib
3.PSDnoise
4.MTF
5.CSF
Acutance = 0.78,属于轻微模糊。
伪代码:
P0=getChartCalibPSD()
P1=getChartRealPSD()
P2=getChartNoisePSD()
MTF = (P1-P2)/P0
CSF = getCSF()
A = ∫MTF*CSFdv
Ar = ∫CSFdv
acutance = A/Ar.
专注于影像行业15年,对镜头芯片及画质评测有一定积累,如需要合作开发项目请私信联系本人,勿做伸手党。
这篇关于基于opencv 纹理图/枯叶图 MTF/ACUTANCE评测算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!