艾里斑大小與像元尺寸的匹配問題

寫給自己看的學習記錄:

光具有波粒二象性,由此衍生出了幾何光學與衍射光學。在光學設計軟件中,最常用的判斷標準是查看點列圖的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.pswp.cn/news/255961.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255961.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255961.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 保持Service不被Kill掉的方法--雙Service守護 Android實現雙進程守護

本文分為兩個部分,第一部分為雙Service守護,第二部分為雙進程守護 第一部分: 一、Service簡介:Java.lang.Object ?Android.content.Context ?android.content.ContextWrapper ?android.app.Service Service是應用程序Applicati…

【mmdetection2.0錯誤】——ModuleNotFoundError: No module named ‘mmdet‘

一開始以為是安裝包導入的相對路徑的問題,結果鼓搗了一上午都沒有用,最后才發現再進行mmdet2.0環境配置的時候忘記編譯了 也就是如下語句: python setup.py develop

聊聊分布式事務

事務就是一個會話過程中,對上下文的影響是一致的,要么所有的更改都做了,要么所有的更變都撤銷掉。就要么生,要么死。沒有半死不死的中間不可預期狀態。參考下薛定諤的貓。 事務是為了保障業務數據的完整性和準確性的。分布式事務&…

PLSQL DBMS_DDL.ANALYZE_OBJECT

http://space.itpub.net/11893231/viewspace-683241 本文轉自健哥的數據花園博客園博客,原文鏈接:http://www.cnblogs.com/gaojian/archive/2012/11/30/2795775.html,如需轉載請自行聯系原作者

【深度學習mmdetection錯誤】——mmdetection 運行報錯KeyError:‘ConvWS is already registered in conv layer‘

于是修改以下mmdetection的安裝文件: site-packages/mmdet-2.1.0unknown-py3.7-linux-x86_64.egg/mmdet/ops/conv_ws.py" 把 CONV_LAYERS.register_module(ConvWS) 修改為: CONV_LAYERS.register_module(nameConvWS, forceTrue)

ABB RAPID 在 Notepad++ 中語法高亮的實現

ABB RAPID 在 Notepad 中語法高亮的實現 分類: Misc2014-04-08 15:43 145人閱讀 評論(0) 收藏 舉報notepadNotepad 內置了一個稱為 UDL2.0 (User Defined Language) 的引擎,來實現用戶自定義語法高亮,使用它,可以定制自己的代碼語…

Redis服務器的啟動過程分析

轉載于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/127.html?1455808771 本文將通過分析代碼來介紹Redis的啟動過程,通過查看Redis 的啟動腳本,得知Redis的啟動時從Redis.c的main方法開始的。Redis啟動可以分為以下幾個步驟…

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版本以上的模型改變…

ABB 機器人 IRBP系列轉臺的一段代碼注釋

PROC IndexToStn1() //檢測變位機狀態 并設置要運行到的角度位置 并對不同的GetNextPartAdv返回值情況 進行處理 VAR bool bActive;VAR jointtarget jtCurrent; //聲明一個位置變量IF (NOT bInterchCalib1) CalibIntch1; ! reset inpo…

如何寫一個bootloader

聲明:本文為學習Codeproject文章的個人總結性文章, 原文:http://www.codeproject.com/Articles/664165/Writing-a-boot-loader-in-Assembly-and-C-Part 本人開發環境: 操作系統:Ubuntu 32位(64位的會有push…

定時執行某段程序

有時候我們需要每天 定時的 自動 去執行某段程序,那么這個功能如何實現呢? 經過百度,定時器就可以實現,總結如下: 我用控制臺寫了一個程序,用來在指定時間內 打印 “我執行了” 上面就是程序的運行結構&…

【error】深度優先搜索TypeError: unhashable type: ‘list‘

查網上的原因是: python字典的key不支持list類型和dict類型,需要轉換 但是我沒有使用到key,后來仔細查看發現是增加了一個裝飾器導致的,functions.lru.cache 把裝飾器注釋掉即可 # 利用深度搜索進行查找 lru_cache(None) def …

Okhttp 插入緩存攔截器 解析

我們在做網絡請求的時候,如果網絡請求過于頻繁而且請求的數據變動不大,或者基本沒有變動,這個時候如果沒有緩存功能,我們想一下 會浪費掉多少資源,一次請求刷新一次,去請求一次,不但會消耗用戶的…

淺談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 紅色為自己添加 我們都知道在計算機中所有的信息最終都…