成像基础 -- 最大对焦清晰的物距计算
最大对焦清晰的物距计算
1. 基本概念
最大对焦清晰的物距通常与景深(Depth of Field, DOF)相关,尤其是无穷远处的物体可以被清晰对焦到的距离,称为超焦距(Hyperfocal Distance)。通过计算超焦距,可以得出当镜头对焦于该距离时,从某个最小物距一直到无穷远的所有物体都可以清晰成像。
超焦距公式
超焦距的计算公式为:
H = f 2 N ⋅ c + f H = \frac{f^2}{N \cdot c} + f H=N⋅cf2+f
其中:
- H H H 是超焦距(Hyperfocal Distance)
- f f f 是镜头焦距
- N N N 是光圈数(f-number,例如 f/2.8, f/8 等)
- c c c 是弥散圆直径(Circle of Confusion, CoC),用于衡量人眼可以容忍的模糊程度,通常取决于感光元件的尺寸。
参数说明
- 焦距 f f f:镜头的焦距,单位为毫米(mm)。
- 光圈 N N N:光圈的 f 数字(如 f/2.8, f/4),数值越小光圈越大。
- 弥散圆直径 c c c:反映“清晰”的标准。对于全画幅相机,通常取 c = 0.03 mm c = 0.03 \, \text{mm} c=0.03mm。
2. 计算实例
假设我们使用一台全画幅相机(35mm 画幅),镜头焦距为 50mm,光圈为 f/8,弥散圆直径 c = 0.03 mm c = 0.03 \, \text{mm} c=0.03mm,计算超焦距。
H = 5 0 2 8 × 0.03 + 50 H = \frac{50^2}{8 \times 0.03} + 50 H=8×0.03502+50
计算步骤:
- 焦距平方: 5 0 2 = 2500 50^2 = 2500 502=2500
- 计算分母: 8 × 0.03 = 0.24 8 \times 0.03 = 0.24 8×0.03=0.24
- 计算超焦距: H = 2500 0.24 + 50 = 10416.67 + 50 = 10466.67 mm H = \frac{2500}{0.24} + 50 = 10416.67 + 50 = 10466.67 \, \text{mm} H=0.242500+50=10416.67+50=10466.67mm
因此,超焦距约为 10.47 米。
3. 最小清晰物距计算
当镜头对焦在超焦距时,从某个最小物距到无穷远都可以清晰成像。最小物距 d min d_{\text{min}} dmin 计算公式如下:
d min = H ⋅ d H + ( d − f ) d_{\text{min}} = \frac{H \cdot d}{H + (d - f)} dmin=H+(d−f)H⋅d
其中:
- d d d 是当前对焦距离
- H H H 是超焦距
- f f f 是焦距
对焦在超焦距的情况下
当镜头对焦在超焦距 H H H 时,最小清晰物距为:
d min = H 2 2 H − f d_{\text{min}} = \frac{H^2}{2H - f} dmin=2H−fH2
使用前面的例子,焦距为 50mm,超焦距为 10467mm,计算最小清晰物距:
d min = 1046 7 2 2 × 10467 − 50 ≈ 5233.5 mm = 5.23 米 d_{\text{min}} = \frac{10467^2}{2 \times 10467 - 50} \approx 5233.5 \, \text{mm} = 5.23 \, \text{米} dmin=2×10467−50104672≈5233.5mm=5.23米
因此,当对焦在超焦距时,从约 5.23 米 到无穷远的物体都会处于清晰范围内。
4. 总结
- 最大对焦清晰的物距 是通过计算超焦距来获得的,表示从某个最小距离到无穷远的物体都可以清晰成像。
- 公式 H = f 2 N ⋅ c + f H = \frac{f^2}{N \cdot c} + f H=N⋅cf2+f 用于计算超焦距,考虑了焦距、光圈大小和弥散圆等参数。
- 当镜头对焦在超焦距时,从约一半超焦距的距离到无穷远的物体都将处于清晰范围内。
相关文章:
成像基础 -- 最大对焦清晰的物距计算
最大对焦清晰的物距计算 1. 基本概念 最大对焦清晰的物距通常与景深(Depth of Field, DOF)相关,尤其是无穷远处的物体可以被清晰对焦到的距离,称为超焦距(Hyperfocal Distance)。通过计算超焦距ÿ…...
win10服务器启动且未登录时自动启动程序
场景:公司服务器安装了几个程序,当服务器断电重启之后希望程序能自动打开,而不需要手动登录服务器打开。 因为软件是自己开发的所以安全方面这里没有考虑。 1.打开服务器管理器,点击工具,选择任务计划程序 2.在任务计…...
算法专题四: 前缀和
目录 1. 前缀和2. 二维前缀和3. 寻找数组的中心下标4. 除自身以外数组的乘积5. 和为k的子数组6. 和可被K整除的子数组7. 连续数组8. 矩阵区域和 博客主页:酷酷学!!! 感谢关注~ 1. 前缀和 算法思路: 根据题意, 创建一个前缀和数组, dp[i] dp[i -1] arr[i], 再使用前缀和数组,…...
【Linux】基础IO(文件描述符、缓冲区、重定向)
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 前言 C文件IO相关操作 系统文件I/O open open函数返回值 文件描述符fd re…...
一篇文章快速学会docker容器技术
目录 一、Docker简介及部署方法 1.1Docker简介 1.1.1什么是docker 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 二 、部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服务 2.2.…...
【MySQL】使用 JDBC 连接数据库
文章目录 前言1. 认识 JDBC1.1 概念1.2 好处 2. 使用 JDBC2.1 安装数据驱动包2.2 把 jar 包导入到项目中2.3 代码编写2.4 测试结果 3. 代码优化4. 源码展示结语 前言 在 MySQL 系列中,我们介绍了很多内容,包括但不限于建库建表,增删查改等等…...
数据结构与算法笔记:概念与leetcode练习题
1、数组Array 时间复杂度 数组访问:O(1) 数组搜索:O(N) 数组插入:O(N) 数组删除:O(N) 特点 适合读,不适合写 数组常用操作 # 1、创建数组 a [] # 2、尾部添加元素 a.append(1) a.append(2) a.append(3) # 3、…...
十大时间序列预测模型
目录 1. 自回归模型 原理 核心公式 推导过程: 完整案例 2. 移动平均模型 原理 核心公式 推导过程: 完整案例 3. 自回归移动平均模型 原理 核心公式 推导过程: 完整案例 4. 自回归积分移动平均模型 原理 核心公式 推导过程 完整案例 5. 季节性自回归积分…...
G2O 通过工厂函数类 OptimizationAlgorithmFactory 来生成固定搭配的优化算法
OptimizationAlgorithmFactory 类位于 optimization_algorithm_factory.h //***g2o源码 g2o/g2o/core/optimization_algorithm_factory.h ***// /*** \brief create solvers based on their short name** Factory to allocate solvers based on their short name.* The Factor…...
手机USB连接不显示内部设备,设备管理器显示“MTP”感叹号,解决方案
进入小米驱动下载界面,等小米驱动下载完成后,解压此驱动文件压缩包。 5、小米USB驱动安装方法:右击“计算机”,从弹出的右键菜单中选择“管理”项进入。 6、在打开的“计算机管理”界面中,展开“设备管理器”项&…...
SpringBootWeb快速入门!详解如何创建一个简单的SpringBoot项目?
在现代Web开发中,SpringBoot以其简化的配置和快速的开发效率而受到广大开发者的青睐。本篇文章将带领你从零开始,搭建一个基于SpringBoot的简单Web应用~ 一、前提准备 想要创建一个SpringBoot项目,需要做如下准备: idea集成开发…...
RabbitMQ 入门到精通指南
RabbitMQ 是一种开源消息代理软件,基于 AMQP(高级消息队列协议)构建,用于异步传输数据,帮助我们解耦系统、削峰流量、处理高并发。本指南将详细介绍 RabbitMQ 的架构设计、使用场景、安装步骤以及一些高级应用…...
ARM base instruction -- movz
Move wide with zero moves an optionally-shifted 16-bit immediate value to a register. 用零移动宽值将可选移位的16位即时值移动到寄存器。即把立即数移动寄存器前先把寄存器清零。 32-bit variant MOVZ <Wd>, #<imm>{, LSL #<shift>} 64-bit var…...
安装jdk安装开发环境与maven
1.下载maven 链接: https://pan.baidu.com/s/1gTmIWBFBdIQob0cqGG3E_Q 提取码: 42ck,apache-maven-3.8.4-bin.zip 2.安装java jdk yum install -y java-1.8.0-openjdk-devel 3.在/opt目录下新建目录 mkdir /opt/maven 4.将apache-maven-3.8.4-bin.zip上传到/opt/ma…...
openpnp - 图像传送方向要在高级校正之前设置好
文章目录 openpnp - 图像传送方向要在高级校正之前设置好笔记图像传送方向的确定END openpnp - 图像传送方向要在高级校正之前设置好 笔记 图像传送方向和JOG面板的移动控制和实际设备的顶部摄像头/底部摄像头要一致,这样才能和贴板子时的实际操作方向对应起来。 …...
数据库建表规范【记录】
建表规约 【强制】创建表时必须显式指定表存储引擎类型,如无特殊需求,一律为InnoDB。 【强制】必须有行数据的创建时间字段create_date和最后更新时间字段edit_date。 【强制】自增主键命名必须是id,关联表外键命名xxyyzz_id;业务…...
css的动画属性
CSS动画属性是CSS3的一个重要特性,它允许你创建平滑的过渡效果,增强用户的交互体验。CSS动画可以通过keyframes规则和animation属性来创建。 animation属性 animation属性是一个简写属性,用于设置动画的多个属性,包括动画名称、…...
【Ubuntu】PlantUML工具 | 安装 | 语法 | 使用工具画序列图
🌱 PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。 目录 1 安装 2 使用PlantUML画序列图 ① 语法 ②示例和效果 利用简单直观的语言,用户可以毫不费力地绘制各种类型的图表。PlantUML 是一个开源项目,支持快速绘制:• 时序图• 用例图• 类图• 对...
微信步数C++
题目: 样例解释: 【样例 #1 解释】 从 (1,1) 出发将走 2 步,从 (1,2) 出发将走 4 步,从 (1,3) 出发将走 4 步。 从 (2,1) 出发将走 2 步,从 (2,2) 出发将走 3 步,从 (2,3) 出发将走 3 步。 从 (3,1) 出发将…...
AI写作工具大比拼:揭秘Claude的神秘魅力以及如何订阅Claude
AI写作困境与Claude的惊喜表现 最近有很多朋友在吐槽AI写的文章不太行,我一看他的要求写的很清楚,已经把提示词都用到位了,例如:写作背景、写作要求等,都有具体写出来。但文章阅读起来就是欠缺点啥。 你们有没有遇到…...
石油勘探中的地震波“翻译官”:如何读懂时距曲线图里的地下秘密?
石油勘探中的地震波“翻译官”:如何读懂时距曲线图里的地下秘密? 站在戈壁滩的勘探营地,望着屏幕上那些看似杂乱的波形曲线,刚入行的地质工程师小李皱起了眉头。"这些弯弯曲曲的线条,到底在诉说什么样的地下故事&…...
Pixel Aurora Engine部署教程:Nginx反向代理+HTTPS配置像素AI服务公网访问
Pixel Aurora Engine部署教程:Nginx反向代理HTTPS配置像素AI服务公网访问 1. 项目介绍与准备 Pixel Aurora Engine是一款基于AI扩散模型的高端像素艺术生成工具,采用复古8-bit游戏风格界面设计。通过本教程,您将学会如何通过Nginx反向代理和…...
Gemma-3 Pixel Studio实战教程:离线模式部署与本地模型权重缓存策略
Gemma-3 Pixel Studio实战教程:离线模式部署与本地模型权重缓存策略 1. 项目概述与核心价值 Gemma-3 Pixel Studio是基于Google最新开源Gemma-3-12b-it模型构建的多模态对话终端,将强大的文本理解能力与视觉感知功能完美结合。与传统对话系统相比&…...
OpenAI最新研究:为什么过程监督比结果监督更有效?手把手解析PRM800K数据集
OpenAI过程监督革命:PRM800K数据集如何重塑大模型对齐范式 数学解题过程中,大语言模型常常会犯下令人啼笑皆非的逻辑错误——得出正确答案却使用了完全错误的推理路径。这种现象在GPT-4等顶尖模型中依然存在,就像学生在考试中"蒙对"…...
代码生成神器实测:Yi-Coder-1.5B在Ollama上的真实体验与效果
代码生成神器实测:Yi-Coder-1.5B在Ollama上的真实体验与效果 1. 开箱体验:Yi-Coder-1.5B初印象 1.1 为什么选择Yi-Coder-1.5B 作为一名经常需要编写各种编程语言的开发者,我一直在寻找一个既轻量又强大的代码生成工具。Yi-Coder-1.5B以其1…...
BAGEL终极指南:解密多模态AI模型的三大核心组件协同机制
BAGEL终极指南:解密多模态AI模型的三大核心组件协同机制 【免费下载链接】Bagel BAGEL是一个开源的多模态基础模型,拥有70亿个活跃参数(总共140亿个),在大规模交错的多模态数据上进行了训练。BAGEL在标准的多模态理解排…...
OOM线上问题排查
场景: 项目中有一个接口,会进行全表查询,查出来3万条,查一次不会导致oom,但是频繁调用这个接口,上一次调用还没有来得及进行垃圾回收,下一次接口调用又来了,又有3万条数据࿰…...
告别重装!用Timeshift给你的Ubuntu系统做个‘时光机’,轻松备份与整盘迁移
用Timeshift打造Ubuntu系统的时光回溯神器:零门槛备份与迁移指南 每次系统崩溃后重装Ubuntu的痛苦,相信不少用户都深有体会——那些精心配置的开发环境、收藏多年的工作文档、调试许久的个性化设置,都可能在一瞬间化为乌有。对于习惯图形化操…...
Vue3+Cesium实战:解决404报错与Webpack配置优化指南
1. 为什么你的Cesium地图总是加载失败? 第一次在Vue3项目里集成Cesium时,我也被那些莫名其妙的404报错搞得焦头烂额。明明按照文档配置了,地图就是不显示,控制台一片红。后来才发现,90%的问题都出在资源路径配置上。 C…...
Ruoyi-Vue3实战:10分钟搞定学生管理系统CRUD(附完整SQL)
Ruoyi-Vue3学生管理系统实战:从零到部署的完整指南 在当今快速迭代的开发环境中,选择高效的技术栈至关重要。Ruoyi-Vue3作为基于Spring Boot和Vue3的企业级开发框架,以其模块化设计和丰富的功能组件,成为快速构建管理系统的首选方…...
