MTF 调制传递函数

评价一个成像系统目前主流的办法主要有三种TV line检测,MTF检测,和SFR检测。

MTF是Modulation Transfer Function的英文简称,中文为调制传递函数。

是指调制度随空间频率变化的函数称为调制度传递函数。最开始是为了说明镜头的能力。

在各个摄像头镜头中经常采用MTF描述镜头的MTF曲线,表明镜头的能力。这些曲线是通过理想的测试环境下尽量减少其它系统对镜头的解析力的衰减的情况下测试得出的。

MTF是描述不同空间频率下的调制函数。

那么什么是空间频率呢?通常,描述频率的单位是赫兹(Hz),比如50Hz、100MHz之类的。

但空间频率的表述习惯用“每毫米线对”。(LP/mm),就是每毫米的宽度内有多少线对。每两条线条之间的距离,以及线条本身的宽度之比是个定值,

目前我国分辨率的标板规定,这个定为公因子是20√10≈1.122等比级数。一般MTF的计算离不开线对

实际拍摄得到的图像,就如下图一样频率越高(越细)的线对就越模糊。但是越好的成像系统得到的线对就越清晰。

MTF是通过找线对中最大亮度点和最小亮度点的对比度来计算的。计算公式为

  MTF=(最大亮度-最小亮度)/(最大亮度+最小亮度)

  调制度介于0和1之间。调制度越大,意味着反差越大,越好。

  所以MTF的计算不会出现大于1的情况。像下面的图表示的这样,当我们测试了很多不同频率下的MTF值。通过将这些值和空间频率进行一一的对照。

  通过这条曲线我们就能知道现在的成像系统在什么样的空间频率下的对比度如何。也就知道了在什么频率的纹理下的解析能力。


SFR 空间频率响应

光学性能测试中,SFR(Spatial Frequency Response)是空间频率响应。MTF常用于光学系统,而SFR指成像系统,成像系统包含一个光学系统。   

SFR是测模组对不同空间频率的响应情况,类似于MTF算法,但测试结果同时受镜头和感光器件以及处理程序的影响,因此称这种算法叫空间频率响应SFR。   

主要是用于测量随着空间频率的线条增加对单一影像所造成的影响。简言之SFR就是MTF的精简版。

因为测量MTF需取得昂贵的正弦样版,并且需换算大量的数据。因此,PIMA开发了这款较低成本的SFR作为替代品。

基本上SFR只需一个双色调的黑白斜线即可换算出约略相等于MTF的值的解像力评鉴图。

SFR是怎么测试和计算的呢。首先SFR不需要拍摄不同的空间频率下的线对。

它只需要一个黑白的斜边(刃边)即可换算出约略相等于所有空间频率

刃边法:

SFR计算中最主要的几步:求导+傅里叶

(1)SFR是通过这条斜边的图进行超采样的到一条更加细腻的黑白变换的直线(ESF)。

(2)然后通过这条直线求导得到直线的变化率(LSF)。

(3)然后对将这个变化率进行FFT(DFT)变换就能得到各个频率下的MTF的值。

PSF、LSF、ESF

点扩展函数PSF(Point Spread Function)、线扩展函数LSF(LineSpread Function)和边缘扩展函数ESF(Edge Spread Function)

(1)点扩展函数PSF是点光源成像后的亮度分布函数,如下图所示,用PSF(X,Y)表示。

点扩展函数是中心圆对称的,通常以沿x轴的亮度分布PSF(X,Y)作为成像系统的点扩展函数。

(2)ESF其实是一条由白变黑(黑变白)的线。

之所以SFR的测试图是一张斜边,是希望通过斜边中的多条线进行超采样,得到一条灰度变换更加平滑的线。

这样减少在后面进行频域转换之后值上的误差。 ESF放大后如下图。

LSF就是一条线上(ESF) 的变化的过程。

对于任意一条线由黑变白的过程是 由不同频率黑白线对 组成。因此可以反过来通过分析一条线得到这些频率下的(FFT)。

当获取点光源像的亮度分布函数PSF(X,Y)后,对其进行二维傅里叶变换即可得MTF (u,v)。

因此,从理论上讲,从PSF也是获取MTF的一个方法。

但是,在实际的应用中,由于地面点光源强度很弱,此方法一般较少采用。

相对于PSF来说,LSF的能量得到了一定程度的加。因此用LSF更好。

【参考文献】

解析力评测MTF和SFR  http://www.52rd.com/S_TXT/2016_3/TXT81761.htm

MTF的倾斜边缘计算方法 - CSDN博客 https://blog.csdn.net/yangpan011/article/details/52947451

【举例】

《电子射野影像系统(EPIDs)图像质量控制方法的探索》论文中

刃边法计算MTF(ESF、LSF、PSF)的更多相关文章

  1. 查表法计算CRC16校验值

    CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X ...

  2. 【九天教您南方cass 9.1】 13 等高线法计算土方量

    同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取 在测量空间中. [点击索取cass教程]5元立得 (给客服说暗号 ...

  3. 用递归法计算从n个人中选选k个人组成一个委员会的不同组合数

    用递归法计算从n个人中选选k个人组成一个委员会的不同组合数. 分析 由n个人里选k个人的组合数= 由n-1个人里选k个人的组合数+由n-1个人里选k-1个人的组合数: 当n = k或k = 0时,组合 ...

  4. javascript:逆波兰式表示法计算表达式结果

    逆波兰式表示法,是由栈做基础的表达式,举个例子: 5 1 2 + 4 * + 3 -  等价于   5 + ((1 + 2) * 4) - 3 原理:依次将5 1 2 压入栈中, 这时遇到了运算符 + ...

  5. Eratosthenes筛选法计算质数

    <C和指针>第6章第4道编程题: 质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法.这个算法的第一步就是写下所有从2至某个上限之间的所有整数.在算法的 ...

  6. python-蒙特·卡罗法计算圆周率

    [题目描述]蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题.假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点 ...

  7. c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;

    网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...

  8. python模拟蒙特·卡罗法计算圆周率

    蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...

  9. 用随机投掷飞镖法计算Pi值(Randomness Throwing dart Pi Python)

    画一个边长为r的正方形和半径为r的四分之一的圆(如下图所示),向上面随机投掷飞镖,通过计算落在星星区域和整体区域的飞镖比例,即可求出π值. 公式推导如下: 假设正方形的边长r为1,那么飞镖落在星星区域 ...

随机推荐

  1. React Native 开源项目汇总

    最近闲来无事,学习了React Native开发Android APP,自我感觉RN APP的效果和Native APP比还是蛮不错,以下是找到的一些优秀源码,仅供学习参考... React Nati ...

  2. vue学习【二】vue结合axios动态引用echarts

    大家好,我是一叶,本篇是vue学习的第二篇,本篇将要讲述vue结合axios动态引用echarts. 在vue中,异步刷新使用的是axios,类似于大家常用的ajax,其实axios已经是vue的第二 ...

  3. java中too many characters in character literal

    IDE里发现 too many characters in character literal 翻译过来就是 字符中的字符过多 , 一般情况是:把 多个文字 放在了 '' (单引号)里,应该放到 &q ...

  4. Zabbix监控Dell服务器相关硬件资源

    一.安装dell服务器硬件监控工具OMSA 1.安装dell的yum源 [root@push-- ~]# wget -q -O - http://linux.dell.com/repo/hardwar ...

  5. Codeforces Round #575 (Div. 3) (A. Three Piles of Candies)(数学)

    A. Three Piles of Candies time limit per test1 second memory limit per test256 megabytes inputstanda ...

  6. jmeter之Ramp-up Period(in seconds)

    [1]决定多长时间启动所有线程.如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行.每个线程会在上一个线程启动后10秒(100/10)启动 ...

  7. AI换脸教程:DeepFaceLab使用教程(1.安装及分解视频)

    首先需要选择合适的DeepFaceLab下载(https://www.deepfacelabs.com/list-5-1.html),然后安装相应的显卡驱动,如果已经准备好这些工作,那么恭喜你,终于开 ...

  8. html中全选反选

    <!--第一层--> <div class="first"> <div class="first_top"> <img ...

  9. vue 中一些API 或属性的常见用法

    prop 官方解释:Prop 是你可以在组件上注册的一些自定义特性.当一个值传递给一个 prop 特性的时候,它就变成了那个组件实例的一个属性. 通俗点讲就是:prop是父组件用来传递数据的一个自定义 ...

  10. Redhat 关闭防火墙和selinux

    查看防火墙状态.systemctl status firewalld 临时关闭防火墙命令.重启电脑后,防火墙自动起来.systemctl stop firewalld 永久关闭防火墙命令.重启后,防火 ...