艾里斑大小与像元尺寸的匹配问题

写给自己看的学习记录:

光具有波粒二象性,由此衍生出了几何光学与衍射光学。在光学设计软件中,最常用的判断标准是查看点列图的RMS半径以及MTF图的曲线,这两者分别代表了两种传播性质的评价方式。

在刚接触光学设计时,我误认为评价标准是,将RMS半径优化到小于像元尺寸的一半即可。认为点列图好了,MTF肯定也好了,其实这是不对的,忽视了艾里斑是最小光斑的衍射理论。

后来才了解到,当点列图小于艾里斑时,RMS半径便不再可靠。用zemax软件优化过程中,主要就是衍射与几何相互对抗的过程,当RMS半径值远大于艾里斑半径时,主要看点列图;当点列图满足要求时,尽量把MTF曲线往衍射极限上优化。

艾里斑半径R=1.22λF,由于λ是设计要求,那么F的选取就很重要,艾里斑过大或者过小都会带来问题,一般来说,让艾里斑半径等于所选探测器的像元尺寸。

具体原因在

薇洛的打火机/衍射极限、MTF与相机分辨率(1)这篇博客里有很详细的介绍。

大致如下:

在空间域中,成像系统的光斑是理想图像与点扩散函数h(t)卷积的结果,而调制传递函数MTF就是系统点扩散函数h(t)经过Fourier变换的结果。

MTF是一个频域的概念,代表不同频率成分对比度的衰减,在光学评价方法中,它的单位是lp/mm,即每毫米/线对,代表每mm范围内,有几个明暗相间的正弦条纹。测试一个光学系统的MTF,就是测试对不同疏密(lp/mm为单位)的条纹的对比度衰减。(lp/mm通常是指像平面上的线对数。)

根据Shannon采样定理,对于频率为f 的信号,我们至少要用2f的频率来采样,才能把它恢复出来。从前面的叙述,我们知道,空间频率一般是用探测器上每毫米线对数来表示的,我们至少需要两个像素来采样它,即两个像素尺寸对应一个线对宽度。这也就是光学设计中奎奈斯特截止频率计算公式的由来,即:

截止频率=1/(2*像元尺寸)

那么回到最初的问题,艾里斑多大才与我们的像元尺寸相匹配,这决定了我们光学设计中F数的选择。

根据瑞利判据,当两个相邻的艾里斑距离为其半径时,这两个艾里斑勉强能够分辨出来。

即一个线对宽度等于艾里斑的半径,在这个频率往上,系统是衍射受限的。哪怕没有任何像差,MTF都很差,细节几乎不可分辨。

即艾里斑直径最大不能超过两个像元尺寸,否则该系统将无意义。

但是在设计中,没必要做的这么极限,另外还要考虑公差对像质的影响。

所以,一般取线对宽度等于艾里斑的直径,即一个像元尺寸等于艾里斑的半径,此时截止频率处衍射极限的MTF值约为0.5,是可以接受的。

 当然艾里斑可以更小,这样截止频率处的MTF值会更高,但是F数太大在光学设计中是件很头疼的事,各种像差带来的影响也很难使MTF接近衍射极限。

毕竟光学设计本身就是一件不断取舍的工作。

所以我们在设计中,常取F数,使得艾里斑半径等于像元尺寸大小即可。

注1:在红外设计中,将点列图优化到艾里斑内并将MTF曲线优化到接近衍射极限即可,不必太关注RMS半径值。

注2:在需求中,F数是有要求的,比如红外常要做到F1.0,反过来即可,即挑选合适的探测器。如果探测器也选定,且像元尺寸很小,那只能BIN了,牺牲分辨率。

注3:原文链接:https://blog.csdn.net/glorydream2015/article/details/44966369

(原文作者的一个例子,懒得打字,直接引用)

对于一个F数为2.8的镜头,假设我们用555nm的黄绿光来成像,像素大小做到多少合适呢?我们取线对宽度等于艾里斑的直径大小作为依据,此时只考虑衍射的话,MTF约有0.5,也还算可以了。一个线对对应两个像素,那么一个像素大小就相当于艾里斑的半径,也就是1.22λF,算出来约为1.9微米。如果固定传感器大小的话,那么它的像素数就是有上限的。到达一个限度,再增加像素数,就会导致像素小于1.9微米,再增加的像素已经提供不了新的信息了。

(批注:即艾里斑半径大于一个像素,像素和像素之间是模糊的,如果BIN的话,其实还是分辨率变少,所以现在市场上的超高像素相机或者手机实在是噱头,以致于只能宣传BIN的好处。)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【mmdetection2.0错误】——ModuleNotFoundError: No module named ‘mmdet‘

一开始以为是安装包导入的相对路径的问题,结果鼓捣了一上午都没有用,最后才发现再进行mmdet2.0环境配置的时候忘记编译了 也就是如下语句: python setup.py develop

ABB RAPID 在 Notepad++ 中语法高亮的实现

ABB RAPID 在 Notepad 中语法高亮的实现 分类: Misc2014-04-08 15:43 145人阅读 评论(0) 收藏 举报notepadNotepad 内置了一个称为 UDL2.0 (User Defined Language) 的引擎,来实现用户自定义语法高亮,使用它,可以定制自己的代码语…

MyEclipse运行时自动保存

今天第一次用MyEclipse,我发现我的代码明明修改了,但运行结果发现总是修改前的代码结果。后来发现,是代码修改后必须保存,再点运行。这个功能明显不合适,所以需要更改MyEclipse的配置。红框是修改后的结果。 转载于:ht…

PLSQL中INDEX BY TABLE 的 prior 和 next 操作学习

开始 --INDEX BY Table SET SERVEROUTPUT ON;DECLARETYPE enm_tab_type IS TABLE OFemp.ename%TYPEINDEX BY BINARY_INTEGER;enm_table enm_tab_type; BEGINenm_table(1):1001;enm_table(2):1002;enm_table(3):1003;enm_table(4):1004;enm_table(6):1006;dbms_output.put_line(…

【深度学习torch——error】——“xxx.pt is a zip archive(did you mean to use torch.jit.load()?)

这个问题是在进行权重文件加载进行预测的时候发生的,原因其实就是torch版本不对 我是用的工作站训练使用的是torch1.7.0,然后用自己的电脑进行预测,就报错了,原因就是自己的电脑是torch1.2.0版本的 因为在1.6版本以上的模型改变…

如何写一个bootloader

声明:本文为学习Codeproject文章的个人总结性文章, 原文:http://www.codeproject.com/Articles/664165/Writing-a-boot-loader-in-Assembly-and-C-Part 本人开发环境: 操作系统:Ubuntu 32位(64位的会有push…

定时执行某段程序

有时候我们需要每天 定时的 自动 去执行某段程序,那么这个功能如何实现呢? 经过百度,定时器就可以实现,总结如下: 我用控制台写了一个程序,用来在指定时间内 打印 “我执行了” 上面就是程序的运行结构&…

浅谈PROFINET IO通信的实时性

PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准。作为一项战略性的技术创新,PROFINET为自动化通信领域提 供了一个完整的网络解决方案,囊括了诸如…

今日头条核心技术“个性推荐算法”揭秘

今日头条核心技术“个性推荐算法”揭秘 最近面试华兴资本, 他们比较关注今日头条算法的实现, 今天特转载网上 今日头条算法解密【IT168 评论】互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大…

PROFINET及其同步实时通讯分析

1 概述 PROFINET实时以太网是由Profibus International(PI)组织提出的基于以太网的自动化标准。从2004年4月开 始,PI与Interbus Club总线俱乐部联手,负责合作开发与制定标准。PROFINET构成从I/O级直至协调治理级的基于组件的分…

【剑指offer15.二进制中1的个数】——位操作(左移右移等)

目录 二进制的表示 二进制的位操作 应用: 剑指offer15.统计二进制中1的个数(多种方法,位右移操作、与操作等) 转自:https://www.jianshu.com/p/3a31065a8e58 红色为自己添加 我们都知道在计算机中所有的信息最终都…

java 异常处理机制(java 编程思想)

一、概念  “异常”这个词有“我对此感到意外”的意思。问题出现了,你也许并不清楚该如何处理,但你的确知道不应该置之不理;你要停下来,看看是不是有别人或在别的地方,能够处理这个问题。只是在当前的环境中还没有足够…

怎样在CentOS 7.0上安装和配置VNC服务器

这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程。当然这个教程也适合 RHEL 7 。在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC 服务器 。 我们都知道 这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程。当然这个教…

Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】

2019独角兽企业重金招聘Python工程师标准>>> 之前在写Spring Boot基础教程的时候写过一篇《Spring Boot中使用RabbitMQ》。在该文中,我们通过简单的配置和注解就能实现向RabbitMQ中生产和消费消息。实际上我们使用的对RabbitMQ的starter就是通过Spring C…

20145225 《信息安全系统设计基础》第10周学习总结

cp1.c 进行复制文件的操作,需要有源文件和目的文件,第一次命令没有加入所以没有正常完成复制文件的操作fileinfo.c 用来实现显示文件信息。先判断命令是否有操作数,有的话才能继续进行下去,如果没有报错就打印出来相关文件信息&am…

【深度学习】——模型评估指标MAP计算实例计算

目录 一、知识储备 1、IOU——交集面积与并集面积之比 2、混淆矩阵(TP、FP、FN、TN) 问题1:上面的TP等具体是如何计算得到的? 3、精度precision&召回率recall 二、ap计算实战 1、计算流程 1)准备数据&#xf…

hdu5489 Removed Interval dp+线段树优化

现在看这题居然直接秒了。。。去年看的时候还以为神题。。 设以第i项为结尾的lis前缀为f[i],以第j项为结尾的lis后缀为g[i],如果求出f[i]和g[j],然后枚举i,快速找到最大的满足a[j]>a[i]的g[j]就可以了。注意到如果将f[i]从后往…

NoSQL分类及ehcache memcache redis 三大缓存的对比

NoSQL分类 由于NoSQL中没有像传统数据库那样定义数据的组织方式为关系型的,所以只要内部的数据组织采用了非关系型的方式,就可以称之为NoSQL数据库。目前,可以将众多的NoSQL数据库按照内部的数据组织形式进行如下分类: Key/Value的…

乐视云计算基于OpenStack的IaaS实践

本文作者岳龙广,现在就职于乐视云计算有限公司,负责IaaS部门的工作。 从开始工作就混在开源世界里,在虚拟化方面做过CloudStack/Ovirt开发,现在是做以OpenStack为基础的乐视云平台。所以对虚拟化情有独钟,也对虚拟化/云…

【深度学习】——如何提高map值

目录 代码获取 map原理 map提高技巧 技巧总结: 实战: 1、效果不佳map55.55% 1)单独调整get_dr_txt.py中的self.iou 0.3 2)单独调整get_map,py中的minoverlap: 3)同时调整minoverlap和self.iou 本文是在faster_rcnn模型的…