刃边法计算MTF(ESF、LSF、PSF)
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)的更多相关文章
- 查表法计算CRC16校验值
CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X ...
- 【九天教您南方cass 9.1】 13 等高线法计算土方量
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取 在测量空间中. [点击索取cass教程]5元立得 (给客服说暗号 ...
- 用递归法计算从n个人中选选k个人组成一个委员会的不同组合数
用递归法计算从n个人中选选k个人组成一个委员会的不同组合数. 分析 由n个人里选k个人的组合数= 由n-1个人里选k个人的组合数+由n-1个人里选k-1个人的组合数: 当n = k或k = 0时,组合 ...
- javascript:逆波兰式表示法计算表达式结果
逆波兰式表示法,是由栈做基础的表达式,举个例子: 5 1 2 + 4 * + 3 - 等价于 5 + ((1 + 2) * 4) - 3 原理:依次将5 1 2 压入栈中, 这时遇到了运算符 + ...
- Eratosthenes筛选法计算质数
<C和指针>第6章第4道编程题: 质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法.这个算法的第一步就是写下所有从2至某个上限之间的所有整数.在算法的 ...
- python-蒙特·卡罗法计算圆周率
[题目描述]蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题.假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点 ...
- c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...
- python模拟蒙特·卡罗法计算圆周率
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...
- 用随机投掷飞镖法计算Pi值(Randomness Throwing dart Pi Python)
画一个边长为r的正方形和半径为r的四分之一的圆(如下图所示),向上面随机投掷飞镖,通过计算落在星星区域和整体区域的飞镖比例,即可求出π值. 公式推导如下: 假设正方形的边长r为1,那么飞镖落在星星区域 ...
随机推荐
- luogu P4383 [九省联考2018]林克卡特树lct
传送门 题目操作有点奇怪,不过可以发现这就是把树先变成\(k+1\)个连通块,然后每个连通块选一条路径(本题中一个点也是一条路径),然后依次接起来.所以实际上要求的是选出\(k+1\)条点不相交的路径 ...
- django 实现 Mock Server
大佬 flask 实现mock server地址:https://github.com/yinquanwang/MockServer 参考使用django实现了一下,并已部署到EasyTest测试平台 ...
- js 类型转变
在绝大部分情况下,操作符和函数可以自动将一个值转换成正确的数据类型.这被称为"类型转变(type conversion)". 举个例子,alert 自动转变任何类型的参数为字符串类 ...
- kafka复习(1)
一:flume复习 0.JMS(java message service )java消息服务 ----------------------------------------------------- ...
- Redis info笔记
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wufaliang003/article/d ...
- mysql之innodb存储引擎
mysql之innodb存储引擎 innodb和myisam区别 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>. ...
- Codeforces Round #575 (Div. 3) E. Connected Component on a Chessboard(思维,构造)
E. Connected Component on a Chessboard time limit per test2 seconds memory limit per test256 megabyt ...
- [易学易懂系列|golang语言|零基础|快速入门|(四)]
今天开始,我们来写代码. 学习一门语言,最快的方式就是写代码,做项目. 别的学习教程,都是hello world. 我们就来点不一样的吧.我们不一样!不一样!不一样! 首先,打开VSCODE.( 关于 ...
- calculate_gain
torch.nn.init.calculate_gain(nonlinearity,param=None) 对于给定的非线性函数,返回推荐的增益值.这些值如下所示: relu_gain=nn.init ...
- Kendo UI使用教程:入门指南
[Kendo UI最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support for React和 ...