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.mzph.cn/news/210487.shtml

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

相关文章

【小红书运营指南1】赛道选择 + 账号运营全周期

小红书运营指南1 写在最前面11.23标签一级标签二级标签 网络资源整理1. 赛道选择近2年小红书女性人群画像 2. 基础认知阶段3. 账号启动阶段4. 选题规划阶段5. 爆款打造阶段6. 涨粉变现阶段涨粉变现阶段粉丝发展阶段 写在最前面 最近做的一个项目调研,调研和实际有一…

Linux基本指令(超详版)

Linux基本指令(超详版) 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与现有类加载器的关系: ClassLoader是一个抽象类。如果我们给定了一个类的二进制名称,类加载器应尝试去定位或生成构成定义类的数据。一种典型的策略是将给定的二进制名称转换为文件名,然后去…

C语言--实现一个函数把一个整数转为它对应的十六进制的字符串

一.题目描述 实现一个函数把一个整数转为它对应的十六进制的字符串。 比如:输入数字1234 输出:4D2 二.思路分析 用一个sprintf函数可以解决问题,输出相对应的字符串 要注意的问题就是:函数结束后要继续使用的内存(比如…

Carla自动驾驶仿真六:pygame多个车辆摄像头画面拼接

此文章主要介绍carla前后左右摄像头画面拼接到pygame上 文章目录 前言一、要点分析二、完整代码三、拼接效果四、总结 前言 1、使用carla做仿真测试或者开发时,如果能够将车辆周边的画面拼接并渲染,可以直观地查看周围地环境,便于调试。本文…

基于ssm的学生公寓管理中心系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本学生公寓管理中心系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

[报错]记录IDEA远程开发报错:java: Cannot run program.....

报错内容 IDEA在进行远程开发的时候报错,内容如下: 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主从复制【面试必看】

在分布式系统中,希望使用多个服务器来部署redis,存在以下几种redis的部署方式 主从模式主从哨兵集群模式 主从模式 在若干个redis节点中,有的是主节点,有的是从节点 假设有三个物理服务器(称为是三个节点&#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…

初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板

本博客参考教程&#xff1a; https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md 介绍一下EVB_AIoT开发板 这个开发板是由TobudOS开源社区联合意法半导体、南京厚德物联网设计的一款高性能IoT开发平台&#xff0c;主控芯片是S…

SystemVerilog学习(0)——目录与传送门

一、验证导论 SystemVerilog学习&#xff08;1&#xff09;——验证导论-CSDN博客文章浏览阅读403次。SystemVerilog自学&#xff0c;验证系统概述&#xff0c;什么是SVhttps://blog.csdn.net/apple_53311083/article/details/133953016 二、数据类型 SystemVerilog学习&…

@FunctionalInterface、Lambda表达式和方法引用

知识不回顾是会被遗忘的&#xff01; 网上看了一些相关文章&#xff0c;这里记录一下&#xff0c;仅供参考 Java语言从JDK1.8开始引入了函数式编程。 函数式编程的核心特点是&#xff0c;函数作为一段功能代码&#xff0c;可以像变量一样进行引用和传递&#xff0c;以便在有需…

stm32 使用18B20 测试温度

用18b20 测试温度是非常常用的&#xff0c;不过18B20的调试不是这么容易的&#xff0c;有些内容网上很多的&#xff0c;不再重复说了&#xff0c;我先把波形说一下&#xff0c;再说程序部分&#xff1a; 整个都温度数据的顺序是&#xff1a; 1.700uS的低电平复位并测试18B20的…

mfc110u.dll丢失的解决方法,mfc110u.dll丢失原因是什么?

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“mfc110u.dll文件丢失”。那么&#xff0c;mfc110u.dll是什么&#xff1f;为什么会出现丢失的情况呢&#xff1f;本文将为您详细介绍mfc110u.dll文件的含义、丢失原因以及解决方法。 首先&…

MyBatis进阶之结果集映射注解版

文章目录 注解实现结果集映射注解实现关系映射常用功能注解汇总 注解实现结果集映射 注意 配置结果集映射&#xff0c;只用看 SQL 执行结果&#xff0c;不看 SQL 语句&#xff01; 注意 由于注解在映射结果集上没有实现 <resultMap> 的 100% 功能&#xff0c;因此&#x…

【车载开发系列】Visio工具使用小技巧

【车载开发系列】Visio工具使用小技巧 【车载开发系列】Visio工具使用小技巧 【车载开发系列】Visio工具使用小技巧一. Word中编辑Visio技巧二. Word中插入visio图形的问题三. 总结 一. Word中编辑Visio技巧 本节主要介绍了Microsoft Word中编辑Visio图形的具体方法。 在 Word…

单臂路由与三层交换机

单臂路由 划分VLAN后同一VLAN的计算机属于同一个广播域&#xff0c;同一VLAN的计算机之间的通信是不成问题的。然而&#xff0c;处于不同VLAN的计算机即使是在同一交换机上&#xff0c;它们之间的通信也必须使用路由器。 图&#xff08;a&#xff09;是一种实现VLAN间路由的方…

电脑中环境变量的设置方法

环境变量是在操作系统中一个具有特定名字的对象&#xff0c;它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量&#xff0c;当要求系统运行一个程序而没有告诉它程序所在的完整路径时&#xff0c;系统除了在当前目录下面寻找此程序外&a…