MTF-SFR总结/探讨
空间频率响应(SFR)定义
在iso12233:2000中,空间频率响应(SFR)测量被定义为通过分析倾斜黑白边缘附近的相机数据而测量的值。
SFR概念理解
SFR算法的计算具体流程:
可以看到,SFR的具体步骤就是上面的九大步骤,箭头中对应的是每一步执行前后对应的输入和输出。
总结如下:
0、获取垂直斜边的ROI:这里水平和垂直的Edge只是为了计算图像在水平方向和垂直方向的解析力,与算法本身无关,因为水平的Edge会被进行90°旋转后作为输入,然后计算SFR的值。
1、进行数据的归一化:一般sensor会对raw图像进行一个2.2的gamma变换,若我们想恢复原始图像时,我们只需要进行一个1/2.2的gamma变换即可。
2、计算图像每一行的像素矩心:这一步的操作其实是为了计算出边缘的位置。具体讲来就是,我们会将图片中的每一行像素都计算具体的矩心位置。可以看到,其实每一行像素的矩心计算出来的结果,其实就是在黑白分界线的附近。
3、对每行的矩心使用最小二乘法进行线性拟合,获得一条关于矩心的直线:根据你计算出来的那么多个矩心的点,然后获取分界边缘的直线表达式。最后获得的其实就是上面的图中那条红色的线,略微有差距,可是基本上可以说是完全一致的了。
4、重新定位ROI,获得ESF:转换坐标轴,将坐标轴转换到计算出来的矩心直线上
5、对获得的ESF进行四倍超采样:然后将每一行中X轴坐标相等的像素值累加起来,然后求均值后得到下面第一行的数组。
6、通过差分运算获得LSF:得到的ESF数组元素进行差分,获得LSF
7、对LSF应用汉明窗:对上面的LSF数组进行汉明窗处理,这一步主要也是看公式,如下:
8、进行DFT运算:图是具体的DFT公式表达,下图是代码中的计算过程,最后的到的SFR数组就是空间频域响应的值。
图像清晰度测试方法
通过ISO12233测试图像清晰度的方法,一般有 TVline测试和SFR测试两种。
当使用SFR测试时,也就是测试斜边(刀口),需要 选择黑色和白色交界的区域,一共需要测10次,中间横向,中间纵向,四角的横向纵向。
MTF调制传递函数定义
MTF算法是分析镜头解像能力的算法,其全称是Modulation Transfer Function(调制传递函数)。为了理解这个,首先需要知道什么是调制Modulation。
如何计算一台相机的调制传递函数:(就是根据分析同一相机在不同空间频率下的成像效果(MTF值)得到一个函数)
MTF的计算就是计算线对间最亮和最暗线对的对比度。(计算过程:相机在空间频率A下成像的图片,读取其最亮值和最暗值)
计算公式为:
MTF = (最大亮度 - 最小亮度) / (最大亮度 + 最小亮度)
得到的MTF值就是该相机位于空间频率A的解析力.---- 多个不同的空间频率下的MTF值组成一组曲线就能得到该相机的MTF曲线,
经过数学处理就能得到该相机的MTF函数(调制传递函数)
这样的话就是说我们计算MTF需要计算不同的空间频率下的响应值,对应的是不是你该拍多张图片呢?这样是不是很不方便呢?
------接着就推出了SFR(空间频率响应)
SFR(空间频率响应):根据数学理论推导,人们发现只需要一个黑白的斜边(刀口)即可换算出约略相等于所有空间频率下的MTF。
如何从MTF曲线中读取镜头分辨率:
人眼最低能识别的反差是0.05,一般选定MTF=0.05时的空间频率值为目视分辨率;如下紫色曲线的镜头分辨率是70lp/mm,红色曲线镜头分辨率是100lp/mm;
分辨率单位、换算及镜头与感光器像素的匹配
总结:
线对每毫米(lp/mm),
L/mm:lines per millimetre。每毫米线数,和LP/mm类似,但仅表示线。
周期每毫米(cycles/mm),
周期每像素(cycles/pixel),
线宽每图像高(LW/PH Line Widths per Picture Height),
线对每图像高(lp/ph)
其中lp/mm是目前使用最多的单位。cycles/pixel是在数码相机中的成像系统的。数码相机下一个像素就是1 cycles/pixel,两个像素就是0.5 cycles/pixel,4个像素是0.25 cycles/pixel.
1、分辨率单位:
1-1、lp/mm(line-pairs/mm):每毫米线对,表示黑白两条线;
常用于 表示镜头分辨率的单位, 指成像平面1mm间距内能分辨开的黑白相间的线条对数;
l/mm:每毫米线数,表示1条线,lp/mm=2 x l/mm;
1-2、LW/PH(line widths/ picture height): 每像高线数;
常用于表示 相机的摄影分辨率(是指镜头和相机的综合分辨率), 每像高最多可以分辨多少条线数 ;
举例:如给一个10 * 20mm的画幅, 如果纵向可以填进去1000根线, 横向可以填进去2000线,横向: 2000lw/ph, 纵向1000lw/ph( 由于lw/ph在不同方向上不能保证线条数目一样, 所有测试要分横向和纵向 );
2、摄影分辨率和镜头分辨率换算:
摄影分辨率与镜头分辨率的转换:
摄影分辨率(LW/PH)= 感光器高度(mm) x 2 x 镜头分辨率(lp/mm)
3、镜头与感光器像素的匹配:
3-1、镜头分辨率与像素的转换:
像素数(P)= 感光元密度(2 x lp/mm)x 感光器高度(mm) x 感光元密度(2 x lp/mm)x 感光器宽度(mm)
3-2、举例:
a、已知镜头的分辨率值为125lp/mm,感光器尺寸是 1/2"(6.4*4.8mm),需要配多少像素的感光器才能发挥镜头成像水平?
感光元密度为250pixel/mm( 2倍lp/mm ),
像素数:P=(6.4x250) x (4.8x200)=1920000 pixel ;
(感光元密度:根据纳奎斯特采样定理,一个感光元对应一条白线或黑线);
b、反之:已知200万像素摄像机(像素数为:1600x1200=1920000),感光器尺寸是 1/2"(6.4*4.8mm),求相配的镜头分辨率 ?
水平像素密度:1600/6.4=250pixel/mm,
垂直像素密度:250pixel/mm,
镜头分辨率:125lp/mm( 若水平或垂直像素密度不等,应参考密度高的);
c、已知sensor的像素尺寸为4um,那么所对应镜头分辨率是多少?
所选镜头的极限分辨率(白线或黑线线宽)也应该是:4um,
一对黑白线的宽度:2 x 0.004mm,
镜头的分辨率就是1/(2x0.004)=125lp/mm;