从零开始学习SFR--1.0

  • 镜头质量检测相关基础知识
    • 1.分辨率
      • 1.1光学分辨率和图像分辨率
      • 1.2系统分辨率
      • 1.3相机的像元、像素、相机分辨率
      • 1.4镜头“像素”与镜头分辨率
    • 2.MTF曲线图像
      • 2.1镜头分辨率与空间频率
      • 2.2MTF测量规则
      • 2.3MTF数值理解
      • 2.4阅读MTF图表
    • 3.总结

前言:因为课题涉及镜头质量检测,而现在镜头检测最普遍的方法便是MTF曲线作为检测镜头质量的标准。网上相关的学习资料并不多,也有一些大佬做了相关算法的研究,不过零零散散,难以成系统。为了学习并实现相关算法,参考各大佬的文章,对整个学习思路进行整理,特开此贴作为学习笔记。

镜头质量检测相关基础知识

1.分辨率

机器视觉和光学系统领域最核心的一点概念就是分辨率,作为初学者搞清分辨率及其相关概念,对机器视觉的学习至关重要。

分辨率的单位也有许多,不同的单位也有不同的描述用途。所以不同用途的分辨率表述很容易让初学者引起混淆感到迷茫。

描述分辨率的单位有:dpi(点每英寸)、lpi(线每英寸)、ppi(像素每英寸)和PPD(PPPixels Per Degree 角分辨率,像素每度)。但只有lpi是描述光学分辨率的尺度的。虽然dpi和ppi也属于分辨率范畴内的单位,但是他们的含义与lpi不同。而且lpi与dpi无法换算,只能凭经验估算。
另外,ppi和dpi经常都会出现混用现象。但是他们所用的领域也存在区别。从技术角度说, “像素”只存在于电脑显示领域,而“点”只出现于打印或印刷领域。

1.1光学分辨率和图像分辨率

在光电成像系统中,常常会用分辨率来评价其成像能力的好坏。这里的分辨率通常是指光学系统的极限分辨率以及成像探测器的图像分辨率。最终图像所呈现出的实际分辨率,取决于二者的综合影响。过高的光学分辨率如果没有足够精细的图像分辨率来体现,则实际分辨率会降低到图像分辨率以下;如果相机解析能力过高但光学系统的分辨率低,同样也看不清物体的精细结构。

  1. 光学分辨率
    光学系统的分辨率,是指"物"在经过光学系统后的"像"在细节上能被分辨的最小距离。一般我们会用光学系统所能分辨的两个像点的最小距离来表示,大于这个距离的两个像点就能被识别为两个点,而小于这个距离的两个点经过光系统后就会被识别为一个点。而对于黑白图样(荧光样品其实也是一种黑白图样)来说,这个分辨能力也可以用单位距离里内能够分辨的黑白线对数来表示,间隔越宽的黑白条纹越容易分别。

    存在这个分辨率的原因是因为光学系统的衍射和像差导致从"物"到"像"的过程中会发生"失真"。这种失真是空间上高频信号丢失所导致的(光学系统可以看作是一个空间上的低通滤波器,只能允许一定带宽范围内的空间频率信号通过),==通俗的理解就是削弱了由"黑"到"白"过渡的锐度和对比度,使其变得平滑和模糊。==下图所示,黑白条纹的真实灰度可以用一个方波信号表示。在经过光学系统之后,如图像 A 和下方波形所示,原始信号被"平滑",方波的每一个峰都展宽成一个贝塞尔峰,黑白相交处的信号变化斜率下降到一个固定水平(这个斜率的下降就是以该系统带宽所做的滤波效果)。当我们将原始条纹变的密集(增加空间频率),该系统仍以固定带宽进行滤波,这样这些被展宽的峰就会互相交叠,损失重叠部分的对比度从而产生图像B的效果。如果我们换一个带宽更宽的系统 2,其信号的高频部分会被更好的保留,表现为黑白交界处的信号变化斜率更大,对比度也越接近真实情况,如图像 B’。

回归到我们熟悉的生物荧光成像,上述分辨率的概念通过瑞利判据与样品的发射光波长和光学系统的数值孔径相联系起来。即在传统宽场荧光下,光学系统的极限分辨率 d = 0.6λ/NA,波长越短,NA值越大,分辨率越高 (可以理解为对空间高频信号的保留越充分)。

  1. 图像分辨率
    图象分辨率(ImageResolution):指图象中存储的信息量。这种分辨率有多种衡量方法,典型的是以每英寸的像素数(PixelsPerInch 简称:PPI)来衡量。再通俗一点说就是,就是单位距离内的像用多少个像素来显示。 图象分辨率和图象尺寸(高宽)的值一起决定文件的大小及输出的质量。

  2. 系统分辨率的"木桶理论“
    那么要使整个系统达到光学上的极限分辨率,我们要如何选择成像系统使其图像分辨率相匹配呢? 这里还需要借助上图中黑白条纹的例子。图中不管是图像 A,B还是 B’,其图像在x方向上的灰度都可以用图像下方的波形图来展示。相机的芯片则会在该方向上以像元尺寸为单位距离均匀对曲线作积分,得到每个像素的数值。这个过程就是对一个连续信号的离散采样。因为芯片上的像素以固定的距离排列,所以这个采样在空间上的采样周期 l 对应的就是像元尺寸(更准确的说是两像素中心点的间距,因为需要考虑芯片的填充因子),其频率就是单位距离内像素点的个数。上述黑白条纹图样的空间频率就是白色/黑色条纹重复出现的频率,而其条纹间距就是他们在空间上的周期 d。频率越高,这个周期 d 就越短。根据Nyquist采样定理( 以后另开文章进行学习),我们需要以连续信号最高频率的2倍作为离散采样的频率,才能刚好还原连续信号的特征。因此我们所需要的芯片采样周期 l,就应该小于等于条纹间距 d 的一半。同样类推到相距很近的两个物点也是如此。如此这样一来我们就能够将光学极限分辨率和像元尺寸联系在一起了。对于生物成像系统,光学上的极限分辨率就是荧光信号变化的最大频率所对应的空间周期 d = 0.6λ/NA,因此像元尺寸 l = d × 放大倍数/2 (注意物点在经过物镜放大后的像点的距离是d × 放大倍数)。

  3. 具体举例:一台荧光显微镜,采用NA1.4的63倍油镜,光路中没有其他放大;观察509nm的绿色荧光样品。
    (1) 采用滨松Flash 4.0相机,像元大小为6.5 um。其光学分辨率为:
    光学分辨率 = 0.61 * 509 nm/1.4 = 222 nm
    其相机的图像分辨率为:
    相机的图像分辨率 = 2 * 6.5 um/63 = 206 nm
    比较二者,光学分辨率较差(即数值较大),所以整个系统的分辨率是受限于光学分辨率的,为222 nm。
    (2) 如果采用的是一款11 um的相机。其光学分辨率不变,仍为:
    光学分辨率 = 0.61 * 509 nm/1.4 = 222 nm
    但其相机的图像分辨率为:
    相机的图像分辨率 = 2 * 11 um/63 = 349 nm
    比较二者,相机的图像分辨率较差(即数值较大),所以整个系统的分辨率是受限于相机像素大小的,为349 nm。

1.2系统分辨率

在机器视觉系统中使用的参数是系统分辨率。通常使用像素精度来表示系统分辨率。

像素精度的概念很简单,即单个像素代表的物理尺寸。

例如相机的像素为10 * 10,被测物为100mm * 100mm,即每个像素代表的物理尺寸为:100mm/10=10mm/像素。

按照这个逻辑,提高系统精度的方法就是提高单位面积的像素比例。
如被测物还是100mm * 100mm,相机像素提升为100 * 100,即每个像素代表的物理尺寸为:100mm/100=1mm/像素。

1.3相机的像元、像素、相机分辨率

“像元”“像素”“分辨率”这几个相机相关的术语,业界目前没有十分明确的定义,有些行业还会有显示分辨率,图像分辨率等等不同的概念,非常容易引起混淆。

像元,图像传感器上能单独感光的物理单元。

像素,数字图像中显示的最小单位。一般相机拍出的图像才会使用像素的概念。相机“像素”的概念并不准确。

相机分辨率,指分辨率即分辨两个靠近的点的能力,也称为解析力。相机能分辨最小的点就是像元尺寸,可理解为相机的分辨率=像元尺寸。

1.4镜头“像素”与镜头分辨率

为了方便的用户选购镜头,工业镜头厂家往往以“像素”命名镜头。

如相机A能拍摄500万像素的图像,厂家把匹配的镜头命名为500万像素镜头。市面上的标清镜头,高清镜头,1080P镜头,均以相机拍摄的图像像素命名。

但在其他领域,如显微镜,内窥镜,单反镜头,却并没有出现此种现象。显然,以“像素”命名镜头,并不能准确地描述镜头的性能。并且也出现了厂家随意命名的现象,为我们理解镜头分辨率制造了困扰。

真实的镜头分辨率应以MTF曲线体现,下面详细介绍MTF图像的内容。

2.MTF曲线图像

通过对成像系统的一些基础知识的理解,终于引入了镜头质量检测的主角,MTF曲线图形。

MTF是Modulation Transfer Function的英文简称,中文为调制传递函数。是指调制度随空间频率变化的函数称为调制度传递函数。最开始是为了说明镜头的能力。
在各个摄像头镜头中经常采用MTF描述镜头的MTF曲线,表明镜头的能力。这些曲线是通过理想的测试环境下尽量减少其它系统对镜头的解析力的衰减的情况下测试得出的。
MTF是描述不同空间频率下的调制函数。

MTF曲线图中,光圈时空间频率为10线对/毫米(每毫米中的黑白线对为10对)的曲线以红色表示,空间频率为30线对/毫米(每毫米中的黑白线对为30对)的曲线以蓝色表示。
10线对/毫米的曲线越高(越接近1),说明镜头对比度高,成像通透。30线对/毫米的曲线越高(越接近1),说明镜头分辨率高,锐度高,成像清晰。
此外,S方向(Sagittal,弧矢方向:以放射状扩散的方向)与M方向(Meridional,子午方向:以同心圆状扩散的方向)的曲线越接近,镜头就越能拍出自然的照片,越容易拍出美丽虚化的画面。

2.1镜头分辨率与空间频率

镜头分辨率可以用空间频率进行量化表达。

空间频率,代表了单位长度内信号的周期数,通常,描述频率的单位是赫兹(Hz),比如50Hz、100MHz之类的。但空间频率的表述习惯用“每毫米线对”。(LP/mm),就是每毫米的宽度内有多少线对。如图一黑一白为1线对。

每两条线条之间的距离,以及线条本身的宽度之比是个定值,目前我国分辨率的标板规定,这个定为公因子是20√10≈1.122等比级数。一般MTF的计算离不开线对。

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

2.2MTF测量规则


大多数镜头通常都经过一定的特殊优化,使其中心画质表现非常好,但是边缘画质会发生很大的变化,即使是昂贵的专业镜头这种光学问题也是普遍存在的。因此,仅通过图像的一部分进行整体评估是极不严谨的,所以MTF数据的测量是由中心至边缘的多个点组成。在上图中的红点即为图像中需要测试的位置。在全画幅相机中,这些位置分别距离传感器中心5mm,10mm,15mm和20mm。在APS-C尺寸传感器(以尼康为例)测量的间隔为3mm,6mm,9mm和12mm。

同时也存在两个不同的角度。一个角度从图像的中心向外倾斜,平行于镜片的半径并指向中心,在图表中被称为弧矢曲线,标为S(Sagittal)。另一个角度在相反方向,被称为子午曲线,标为M(Meridional)。这样做的主要原因是,由于镜头像差一些镜头可以非常好的解析一个方向的细节,但没有那么好解析另一个方向的细节。这有助于轻松识别出镜片的散光。

2.3MTF数值理解

MTF是通过找线对中最大亮度点和最小亮度点的对比度来计算的。计算公式为
  MTF=(最大亮度-最小亮度)/(最大亮度+最小亮度)。
  调制度介于0和1之间。调制度越大,意味着反差越大,越好。
  所以MTF的计算不会出现大于1的情况。像下面的图表示的这样,当我们测试了很多不同频率下的MTF值。通过将这些值和空间频率进行一一的对照。
  通过这条曲线我们就能知道现在的成像系统在什么样的空间频率下的对比度如何。也就知道了在什么频率的纹理下的解析能力。

2.4阅读MTF图表

  • X轴(水平)表示从画面中心到边缘的距离。值0表示中心,而5,10,15和20表示我之前谈到的全画幅传感器中心的距离(mm)。如果是针对较小的APS-C尺寸传感器,则数字将为0,3,6,9和12,对于不同的制造商而言,APS-C传感器的间隔可能不同。例如佳能使用0,5,10和13用于APS-C镜头。
  • Y轴(垂直)表示镜头能够传输的光量。不是绘制表示传输光量的百分比(0%到100%),而是将数据从0(0%)简化为1(100%)。图表中的每条水平线以0.1(10%)为增量绘制。

两条线分别是测量分辨率的30线/ mm和测量对比度的10线/ mm。在上图中我们使用红线显示对比度(10线/ mm),使用蓝线显示分辨率(30线/ mm)。因此,在MTF图表上会看到对比度和分辨率两条曲线。


在Y轴的数字常用于理解对比度和分辨率的“好”或“坏”,一般情况下对比度都会高于图表中的分辨率。 在图表中任何高于0.9的值都表示优异的对比度,0.7到0.9之间通常表示非常好,0.5到0.7之间是平均值,而低于0.5的任何值表示为差。

3.总结

MTF作为镜头质量检测的公认标准,明白其原理以及会看MTF的曲线图是必要的。这也对后续与MTF原理相近的SFR算法的学习打下基础。

参考:

  1. 深入解读MTF曲线,让您读懂一颗好镜头
  2. 光学系统的核心–分辨率
  3. 相机光学(十八)——MTF与SFR
  4. 相机像素尺寸(像元大小)和成像系统分辨率之间的关系

从零开始学习SFR-- 1.0相关推荐

  1. 从零开始学习SFR-- 2.0

    从零开始学习SFR-- 2.0 1.SFR基础 2.刃边法(e-SFR) 2.1 SFR算法流程 2.2 PSF.LSF.ESF 总结 前言:因为课题涉及镜头质量检测,而现在镜头检测最普遍的方法便是M ...

  2. 从零开始学习SFR-- 3.0

    从零开始学习SFR--3.0 算法流程 Mitre_SFR 1. main() 2. find_area() 3. sfrProc() 3.1 locate_centroids() 3.2 fit() ...

  3. 《从零开始学习ASP.NET MVC 1.0》-开天辟地入门篇

    <从零开始学习ASP.NET MVC 1.0> 文章导航 (一) 开天辟地入门篇 (二) 识别URL的Routing组件 (三) Controller/Action 深入解析与应用实例 ( ...

  4. 软件测试难吗?0基础可以学吗?上手时间快吗?如何从零开始学习软件测试?

    如何从零开始学习软件测试 很多朋友想要入行软件测试,但是都不知道该怎么学. 抽个时间简单的给大家说下,对于0基础的朋友,应该怎么去学习软件测试. 学习软件测试有2条路可以选. 最省事的当然是找个靠谱的 ...

  5. [0 to 0.5]从零开始学习Android动画知识(下)

    [0 to 0.5]从零开始学习Android动画知识(下) 矢量动画(Scalable Vector Graphics) 不同于前面的为控件做动画效果的方法,矢量动画则是为图形做出动画效果 矢量图 ...

  6. [0 to 0.5]从零开始学习Android动画知识(中)

    [0 to 0.5]从零开始学习Android动画知识(中) 属性动画(Property Animation) 属性动画(Property Animation)是在 Android 3.0(API 1 ...

  7. 从零开始学习ASP.NET MVC 1.0 (一)

    从零开始学习ASP.NET MVC 1.0 (一) MVC1.0下载地址:http://www.microsoft.com/download/en/details.aspx?id=5388 博客园:h ...

  8. python从零开始到精通_「Python 入门学习指南」0基础小白助你从入门到精通!

    Python比较简单,非常适合初学者入门,内置了各种库,还有丰富的大约13万第三方库,掌握了语法和编程思维后,可以直接使用这些库做出自己的产品.这篇 Python 入门学习指南,针对没有任何编程经验. ...

  9. 从零开始学习SFR-- 1.1(转:分辨率单位))

    从零开始学习SFR-- 1.1(转:分辨率单位) 前言 前言 提示:因为课题涉及镜头质量检测,而现在镜头检测最普遍的方法便是MTF曲线作为检测镜头质量的标准.网上相关的学习资料并不多,也有一些大佬做了 ...

最新文章

  1. PHP使用文件锁解决高并发问题示例
  2. linux文件上传,给文件或目录添加apache权限
  3. c++调用python接口作用是_利用Boost::Python实现C++调用python接口
  4. 2.WindowsServer2012R2装完的一些友好化设置
  5. jinja Expressions
  6. 面板数据回归模型(固定效应、随机效应、混合回归、变系数)、面板数据AR、VAR模型
  7. oracle case grouping,ORACLE GROUPING函数的使用
  8. 熟悉常规B/S、C/S系统开发实现原理
  9. 克隆虚拟主机后的主机如何联网!!!!
  10. 操作系统微内核架构研究
  11. 数字时代的保险创新与升级 | 创新场景50
  12. pythonselenium模拟登陆爬取信息_python3 使用selenium模拟登陆天眼查抓取数据
  13. Linux查询ip地址ens33没有inet这个属性
  14. ensp 双机热备 配置_【解忧番外篇】基于eNSP USG6000v的双机热备实验
  15. IIS之web服务器部署
  16. PS制作渐变金属文字
  17. javaweb JAVA JSP校园二手交易平台源码jsp二手交易系统 闲置物品出售
  18. mysql 增加一个序号列
  19. 工科生安装Ubuntu18.04后干的事情
  20. 华为FPGA设计高级技巧xilnx篇-阅读笔记2

热门文章

  1. Java集成融云服务端
  2. matlab单位阶跃响应与单位脉冲响应,python 已知响应函数求单位阶跃响应或脉冲响应...
  3. c语言泊松分酒编码,泊松分酒原理
  4. 【C++】模板进阶 — 模板特化
  5. 阿里云——云开发平台基于Python的web项目部署到Serverless
  6. 在JS中的数字存储问题
  7. 阿里云国际站卸载阿里云盾监控
  8. Android中framework层下添加aidl编译说程序包不存在
  9. Amcharts曲线图,简单明了,看完立马就上手
  10. 稚晖君_瀚文机械键盘2