2023第十二屆“認證杯”D題:CMOS黃昏系數|數學中國數學建模國際賽(小美賽)| 建模秘籍文章代碼思路大全

鐺鐺!小秘籍來咯!

小秘籍希望大家都能輕松建模呀,數維杯也會持續給大家放送思路滴~

抓緊小秘籍,我們出發吧~

來看看認證杯(D題)!
在這里插入圖片描述

完整內容可以在文章末尾領取!
問題重述:

在光學設備領域,當我們使用普通光學望遠鏡在弱光條件下觀察遠處目標時,光圈越大,望遠鏡中進入的光線就越多。望遠鏡的放大倍數越大,視野就越窄,圖像就越暗。然而,放大倍數越高,目標就越大,觀察到的細節就越多。為了在弱光條件下比較望遠鏡的適用性,蔡司公司采用了一種經驗公式,稱為黃昏系數,定義如下:

T F = m × d TF = \sqrt{m \times d} TF=m×d ?

其中 m 為放大倍數, d 為物鏡直徑(以毫米為單位)。

黃昏系數是一個用于比較在低光條件下使用的雙筒望遠鏡或望遠鏡的數字。黃昏系數越大,表示在弱光條件下能夠觀察到更多的細節。然而,黃昏系數有時會誤導,例如兩個望遠鏡,一個是8x56,另一個是56x8(理論上可行但實際上不存在的型號),它們的黃昏系數都是21.2。雖然8x56型號在黃昏時表現良好,但56x8型號即使在白天也完全無法使用。

現在,我們希望有一個更有用的指標,用于表達望遠鏡在低光條件下的性能,同時只使用基本參數。這將為望遠鏡的選擇提供一個性能參考。我們不考慮更詳細的反映圖像質量的性能參數,如對比度、透過率、顏色還原等。

任務:

  1. 請考慮在弱光條件下人眼的視覺特性,建立一個合理的模型,提出適用于人眼直接觀察的黃昏系數算法。

  2. 如果視覺接收器不是人眼而是CMOS視頻錄制設備,請考慮CMOS在弱光條件下的感應特性,建立一個合理的數學模型,提出適用于CMOS視頻錄制設備的黃昏系數算法。

任務1

問題一:新思路模型建立

考慮人眼在弱光條件下的視覺特性

1.視覺特性分析:

  • 視野大小影響: 在低光條件下,擁有較大視野的望遠鏡能夠收集更多的光線,因此在一定程度上能夠提高在弱光環境下的表現。
  • 適應性亮度調整: 人眼在弱光下具有適應性,可以通過瞳孔的擴大來接收更多的光。這個特性應當在新模型中得到考慮。

2. 建立新的黃昏系數算法:

考慮視野大小:

在考慮視野大小時,我們引入了一個視野因子 f f f,它是一個影響視野對黃昏系數貢獻的參數。視野越大, f f f 的值越大,對黃昏系數的影響就越顯著。

我們可以選擇一個合適的函數形式,例如 T F n e w = k × m × d × f TF_{new} = k \times \sqrt{m \times d \times f} TFnew?=k×m×d×f ?,其中 k k k是一個常數。這個函數結合了傳統的望遠鏡黃昏系數的根號形式,同時考慮了視野大小對性能的影響。

適應性亮度調整:

為了考慮人眼在低光條件下的適應性,我們引入一個亮度調整因子,這個因子反映了瞳孔擴大的程度。在弱光條件下,人眼的瞳孔會擴大以接收更多光線,從而提高對弱光環境的適應性。

因此,新的黃昏系數算法可以通過乘以適應性亮度調整因子來模擬這一效應,即 T F n e w = T F n e w × 1 瞳孔因子 TF_{new} = TF_{new} \times \frac{1}{\text{瞳孔因子}} TFnew?=TFnew?×瞳孔因子1?

3. 可行性和測量方法:

視野大小的測量:

測量望遠鏡的視野大小可以通過以下步驟實現:

  • 使用一個標準測量工具,如角度測量儀,測量望遠鏡的視場角。
  • 將視場角轉換為視野大小的估算,使用望遠鏡的設計參數,例如焦距等。

這個過程可以在實際使用中通過標準的光學儀器進行,確保了視野大小的準確度。

瞳孔因子的測量:

測量瞳孔因子可以通過以下步驟實現:

  • 在弱光條件下,使用瞳孔測量儀等設備測量人眼瞳孔的直徑。
  • 在不同光照條件下進行多次測量,以獲取瞳孔因子在不同亮度下的變化。

這個過程可以使用專業的眼科設備進行,以確保測量的準確性。

  1. 實例和驗證:
    • 選擇合適的實際望遠鏡數據進行驗證: 選擇幾款實際望遠鏡,使用新的黃昏系數算法和傳統算法進行對比,觀察它們在弱光條件下的表現,驗證新模型的有效性。
    • 繪制圖表和對比分析: 使用實際數據繪制圖表,展示新模型相對于傳統模型的優越性。比較在不同亮度下的黃昏系數。
import numpy as np
import matplotlib.pyplot as pltdef new_twilight_coefficient(magnification, lens_diameter, field_of_view, adaptability_factor):"""計算新的黃昏系數Parameters:magnification (float): 望遠鏡的放大倍數lens_diameter (float): 物鏡直徑(毫米)field_of_view (float): 視野大小adaptability_factor (float): 適應性亮度調整因子Returns:float: 新的黃昏系數"""tf_new = np.sqrt(magnification * lens_diameter * field_of_view) * adaptability_factorreturn tf_newdef simulate_measurements():"""模擬實驗數據Returns:Tuple[np.ndarray, np.ndarray, np.ndarray]: 放大倍數、物鏡直徑、新的黃昏系數結果"""magnifications = np.linspace(6, 12, 20)lens_diameters = np.linspace(40, 60, 20)results = np.zeros((len(magnifications), len(lens_diameters)))for i, m in enumerate(magnifications):for j, d in enumerate(lens_diameters):#見完整版

任務2

問題二:CMOS視頻錄制設備模型建立

1. CMOS感應特性分析:
  1. 靈敏度: CMOS傳感器在低光條件下的靈敏度通常較低,需要考慮靈敏度對圖像質量的影響。

  2. 噪聲水平: 弱光條件下,噪聲在圖像中可能更為明顯,需要考慮噪聲對圖像清晰度的影響。

  3. 動態范圍: CMOS傳感器的動態范圍影響其在低光條件下捕捉細節的能力,需要綜合考慮。

2. CMOS黃昏系數算法建模:
  1. 靈敏度補償: 引入一個靈敏度補償因子,以反映CMOS在弱光條件下的性能,即 T F C M O S = 靈敏度 × T F TF_{CMOS} = \text{靈敏度} \times TF TFCMOS?=靈敏度×TF

  2. 噪聲抑制: 引入噪聲抑制因子,以減少噪聲對圖像的影響,即 T F C M O S = T F 噪聲因子 TF_{CMOS} = \frac{TF}{\text{噪聲因子}} TFCMOS?=噪聲因子TF?

  3. 動態范圍適應: 引入動態范圍適應因子,考慮CMOS動態范圍對圖像質量的調整,即 T F C M O S = 動態范圍因子 × T F TF_{CMOS} = \text{動態范圍因子} \times TF TFCMOS?=動態范圍因子×TF

  4. 綜合考慮: 將上述因子結合,得到CMOS的新黃昏系數算法,即 T F C M O S = 靈敏度 × T F 噪聲因子 × 動態范圍因子 TF_{CMOS} = \text{靈敏度} \times \frac{TF}{\text{噪聲因子}} \times \text{動態范圍因子} TFCMOS?=靈敏度×噪聲因子TF?×動態范圍因子

3. 參數定義和測量方法:
  1. 靈敏度測量: 使用標準測試圖像,在不同光照條件下測量CMOS的靈敏度。

  2. 噪聲水平測量: 在弱光條件下捕捉圖像,并通過圖像處理方法測量噪聲水平。

  3. 動態范圍測量: 使用具有高對比度的場景,測量CMOS在不同光照條件下的動態范圍。

4. 示例驗證和圖表展示:
  1. 選擇CMOS攝像頭: 選擇一個實際的CMOS攝像頭,獲取其性能參數。

  2. 模擬實驗數據: 模擬不同光照條件下的黃昏系數,使用新的CMOS算法和傳統算法進行比較。

  3. 繪制圖表: 使用圖表展示不同參數對CMOS黃昏系數的影響,以及新算法相對于傳統算法的優越性。

import numpy as np
import matplotlib.pyplot as pltdef cmos_twilight_coefficient(magnification, lens_diameter, field_of_view, adaptability_factor,sensitivity_factor, noise_factor, dynamic_range_factor):# 新的黃昏系數算法考慮CMOS感應特性tf_new_cmos = sensitivity_factor * np.sqrt(magnification * lens_diameter * field_of_view) / noise_factortf_new_cmos *= dynamic_range_factorreturn tf_new_cmosdef simulate_cmos_measurements():# 模擬實驗數據magnifications = np.linspace(6, 12, 20)lens_diameters = np.linspace(40, 60, 20)results_cmos = np.zeros((len(magnifications), len(lens_diameters)))for i, m in enumerate(magnifications):for j, d in enumerate(lens_diameters):# 使用一些固定的視野、適應性因子和感應特性因子進行模擬tf_new_cmos = cmos_twilight_coefficient(m, d, field_of_view=5.0, adaptability_factor=1.2,sensitivity_factor=0.8, noise_factor=1.1, dynamic_range_factor=0.9)results_cmos[i, j] = tf_new_cmosreturn magnifications, lens_diameters, results_cmosdef plot_cmos_results(magnifications, lens_diameters, results_cmos):

代碼模擬了一系列CMOS攝像頭參數的實驗數據,并使用新的CMOS黃昏系數算法計算了相應的黃昏系數。最后,通過輪廓圖可視化了不同參數下的新CMOS黃昏系數。

認證杯跟緊小秘籍沖沖沖!!更多內容可以點擊下方名片詳細了解!
記得關注 數學建模小秘籍打開你的數學建模奪獎之旅!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210487.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210487.shtml

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

相關文章

【小紅書運營指南1】賽道選擇 + 賬號運營全周期

小紅書運營指南1 寫在最前面11.23標簽一級標簽二級標簽 網絡資源整理1. 賽道選擇近2年小紅書女性人群畫像 2. 基礎認知階段3. 賬號啟動階段4. 選題規劃階段5. 爆款打造階段6. 漲粉變現階段漲粉變現階段粉絲發展階段 寫在最前面 最近做的一個項目調研,調研和實際有一…

每日移到算法題 1

借鑒文章:Java-敏感字段加密 - 嗶哩嗶哩 題目描述 給定一個由多個命令字組成的命令字符串; 1、字符串長度小于等于127字節,只包含大小寫字母,數字,下劃線和偶數個雙引號 2、命令字之間以一個或多個下劃線_進行分割…

設計模式-工廠模式(Factory)

Factory模式是一種創建型設計模式&#xff0c;用于封裝對象的實例化過程。它提供了一個統一的接口來創建不同類型的對象&#xff0c;而無需暴露具體的實例化邏輯給客戶端。 #include <iostream> #include <memory>// AbstractProduct&#xff08;抽象產品類&#…

mybatis-plus處理blob字段

轉載自&#xff1a;www.javaman.cn 在 Spring Boot 項目中使用 MyBatis-Plus 處理 longblob 字段時&#xff0c;我們可以按照以下步驟進行操作。假設 longblob 存儲的是字符串數據。以下是完整的示例代碼&#xff1a; 添加依賴&#xff1a;在你的項目的 pom.xml 文件中添加 My…

js判斷上傳的文件是GBK編碼還是UTF-8

1、獲取文件二進制數據&#xff0c;這里只做示例&#xff0c;例如element-ui中文件上傳的beforeUpload方法&#xff0c;返回的file對象&#xff0c;然后使用FileReader對其進行轉換&#xff0c;再進行后續判斷 function beforeUpload(file: File) { const reader new FileRea…

Linux基本指令(超詳版)

Linux基本指令&#xff08;超詳版&#xff09; 1. ls指令2.pwd指令3. cd 指令4.touch指令5mkdir指令6.rmdir指令&&rm指令7.man指令7.cp指令8.mv指令9.echo指令10.cat指令11.more指令12.less指令13.head指令14.tail指令15.date指令16.find指令17.grep指令zip(打包壓縮) …

JVM類加載器ClassLoader的源碼分析

1、ClassLoader與現有類加載器的關系 ClassLoader與現有類加載器的關系&#xff1a; ClassLoader是一個抽象類。如果我們給定了一個類的二進制名稱&#xff0c;類加載器應嘗試去定位或生成構成定義類的數據。一種典型的策略是將給定的二進制名稱轉換為文件名&#xff0c;然后去…

C語言--實現一個函數把一個整數轉為它對應的十六進制的字符串

一.題目描述 實現一個函數把一個整數轉為它對應的十六進制的字符串。 比如&#xff1a;輸入數字1234 輸出&#xff1a;4D2 二.思路分析 用一個sprintf函數可以解決問題&#xff0c;輸出相對應的字符串 要注意的問題就是&#xff1a;函數結束后要繼續使用的內存&#xff08;比如…

Carla自動駕駛仿真六:pygame多個車輛攝像頭畫面拼接

此文章主要介紹carla前后左右攝像頭畫面拼接到pygame上 文章目錄 前言一、要點分析二、完整代碼三、拼接效果四、總結 前言 1、使用carla做仿真測試或者開發時&#xff0c;如果能夠將車輛周邊的畫面拼接并渲染&#xff0c;可以直觀地查看周圍地環境&#xff0c;便于調試。本文…

Spring Boot 工廠模式 + 抽象類 + 泛型干掉重復代碼

業務場景&#xff1a;N個Excel導入&#xff0c;實現動態加載&#xff0c;只需要定義Excel實體&#xff0c;即可實現功能開發&#xff0c; 核心代碼 import cn.afterturn.easypoi.excel.annotation.ExcelTarget; import cn.hutool.core.annotation.AnnotationUtil; import cn.h…

刪除Windows系統中無用的隱藏設備

一些即插即用設備會占用一些隱藏的系統資源&#xff0c;比如USB轉串口的設備會占用COM號碼&#xff0c;網卡會占用靜態IP地址等等。 通常我們使用設備管理器的顯示隱藏設備功能&#xff0c;來刪除這些設備。但是設備管理器每次只允許刪除一個設備&#xff0c;如果設備太多了&a…

【算法集訓】基礎數據結構:四、棧

棧理解了兩天&#xff0c;所以遲了一天發。 一、棧的概念 棧是一個容器&#xff0c;是一個先進后出的線性表&#xff0c;類似與日常生活中的電梯、杯子等。 僅限在表尾部進行插入和刪除操作。 使用鏈表來模擬棧&#xff1a; typedef int DataType; 相當于給int起一個別名 st…

Go 協程基礎:輕松入門并發編程,解析 Goroutines 的奧秘

一、協程基本使用 1、啟動一個協程 主線程中每個100毫秒打印一次&#xff0c;總共打印2次另外開啟一個協程&#xff0c;打印10次情況一&#xff1a;打印是交替&#xff0c;證明是并行的情況二&#xff1a;開啟的協程打印2次&#xff0c;就退出了&#xff08;因為主線程退出了…

做題筆記:SQL Sever 方式做牛客SQL的題目--SQL157

----SQL157 平均播放進度大于60%的視頻類別 計算各類視頻的平均播放進度&#xff0c;將進度大于60%的類別輸出。 注&#xff1a; 播放進度播放時長視頻時長*100%&#xff0c;當播放時長大于視頻時長時&#xff0c;播放進度均記為100%。 結果保留兩位小數&#xff0c;并按播放進…

基于ssm的學生公寓管理中心系統的設計與實現論文

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本學生公寓管理中心系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據…

[報錯]記錄IDEA遠程開發報錯:java: Cannot run program.....

報錯內容 IDEA在進行遠程開發的時候報錯&#xff0c;內容如下&#xff1a; java: Cannot run program "/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java" (in directory "/home/jim/.cache/JetBrains/RemoteDev-IU/_home_jim_DevCodes_Github_zfile/compile-…

redis主從復制【面試必看】

在分布式系統中&#xff0c;希望使用多個服務器來部署redis&#xff0c;存在以下幾種redis的部署方式 主從模式主從哨兵集群模式 主從模式 在若干個redis節點中&#xff0c;有的是主節點&#xff0c;有的是從節點 假設有三個物理服務器&#xff08;稱為是三個節點&#xff…

(JSP)EL——優化登錄界面,獲取對象,獲取數據

EL優化登錄界面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"reques…

生產工序(oj題)

很有趣的一道題 關鍵在于固定工序的整合 看樣例是固定工序中間是不能插入其他工序的&#xff08;也不講清楚&#xff09;&#xff0c;如果可以的話&#xff0c;只能說可能會更麻煩 注意固定工序是按照固定工序中的第一個工序進行排序的 整合完之后&#xff0c;就是遞歸列出…

Java中的IO流①——IO流的體系、字節流、try...catch異常處理

概述 IO流的分類 IO流的體系 這四個類都是抽象類&#xff0c;所以需要實現類對象才能使用---> 字節流 FileInputStream--> 書寫細節 代碼示范 此時文件a.txt內容為abcde 使用char強轉和read方法調用五次read方法--> public static void main(String[] args) throws IO…