成像基础 -- 景深计算
景深计算
景深(Depth of Field, DOF)指的是在摄影中,能够清晰成像的物体前后距离的范围。景深的大小取决于多个因素,包括焦距、光圈值、物距以及相机感光元件的尺寸。
1. 景深的主要参数
- 焦距( f f f):镜头的焦距,通常以毫米(mm)为单位。
- 光圈( N N N):镜头的光圈值(f-stop),如 f/2.8、f/4 等。
- 物距( d o d_o do):物体与镜头之间的距离,通常以米(m)为单位。
- 感光元件的直径(Circle of Confusion, c c c):模糊圆的直径,通常是根据感光元件大小预设的一个数值。
2. 景深的计算公式
景深通常分为两个部分:
- 前景深(Near Depth of Field, D O F n e a r DOF_{near} DOFnear)
- 后景深(Far Depth of Field, D O F f a r DOF_{far} DOFfar)
景深总和为前景深和后景深的和:
D O F = D O F f a r − D O F n e a r DOF = DOF_{far} - DOF_{near} DOF=DOFfar−DOFnear
3. 焦点前后的距离计算公式
前景深计算公式(最近可清晰成像的距离):
D O F n e a r = H ⋅ d o H + ( d o − f ) DOF_{near} = \frac{H \cdot d_o}{H + (d_o - f)} DOFnear=H+(do−f)H⋅do
后景深计算公式(最远可清晰成像的距离):
D O F f a r = H ⋅ d o H − ( d o − f ) DOF_{far} = \frac{H \cdot d_o}{H - (d_o - f)} DOFfar=H−(do−f)H⋅do
其中:
- 超焦距(Hyperfocal Distance, H H H):指的是当镜头对焦在此距离时,从相机到无限远的范围内都能清晰成像。计算公式为:
H = f 2 N ⋅ c + f H = \frac{f^2}{N \cdot c} + f H=N⋅cf2+f
4. 景深计算的步骤
步骤 1:计算超焦距 H H H
H = f 2 N ⋅ c + f H = \frac{f^2}{N \cdot c} + f H=N⋅cf2+f
其中:
- f f f 是镜头的焦距
- N N N 是光圈值
- c c c 是模糊圆的直径,根据感光元件大小确定(例如,对于全画幅相机, c ≈ 0.03 mm c \approx 0.03 \, \text{mm} c≈0.03mm)
步骤 2:计算前景深 D O F n e a r DOF_{near} DOFnear
D O F n e a r = H ⋅ d o H + ( d o − f ) DOF_{near} = \frac{H \cdot d_o}{H + (d_o - f)} DOFnear=H+(do−f)H⋅do
步骤 3:计算后景深 D O F f a r DOF_{far} DOFfar
D O F f a r = H ⋅ d o H − ( d o − f ) DOF_{far} = \frac{H \cdot d_o}{H - (d_o - f)} DOFfar=H−(do−f)H⋅do
步骤 4:计算总景深 D O F DOF DOF
D O F = D O F f a r − D O F n e a r DOF = DOF_{far} - DOF_{near} DOF=DOFfar−DOFnear
5. 具体例子:
假设我们使用以下参数:
- 焦距 f = 50 mm f = 50 \, \text{mm} f=50mm
- 光圈 N = 2.8 N = 2.8 N=2.8
- 物距 d o = 2 m d_o = 2 \, \text{m} do=2m(被摄物体距离相机 2 米)
- 模糊圆 c = 0.03 mm c = 0.03 \, \text{mm} c=0.03mm(全画幅感光元件)
步骤 1:计算超焦距 H H H
H = 5 0 2 2.8 × 0.03 + 50 = 2500 0.084 + 50 ≈ 29811.9 mm ≈ 29.81 m H = \frac{50^2}{2.8 \times 0.03} + 50 = \frac{2500}{0.084} + 50 \approx 29811.9 \, \text{mm} \approx 29.81 \, \text{m} H=2.8×0.03502+50=0.0842500+50≈29811.9mm≈29.81m
步骤 2:计算前景深 D O F n e a r DOF_{near} DOFnear
D O F n e a r = 29.81 × 2 29.81 + ( 2 − 0.05 ) = 59.62 29.81 + 1.95 ≈ 59.62 31.76 ≈ 1.88 m DOF_{near} = \frac{29.81 \times 2}{29.81 + (2 - 0.05)} = \frac{59.62}{29.81 + 1.95} \approx \frac{59.62}{31.76} \approx 1.88 \, \text{m} DOFnear=29.81+(2−0.05)29.81×2=29.81+1.9559.62≈31.7659.62≈1.88m
步骤 3:计算后景深 D O F f a r DOF_{far} DOFfar
D O F f a r = 29.81 × 2 29.81 − ( 2 − 0.05 ) = 59.62 29.81 − 1.95 ≈ 59.62 27.86 ≈ 2.14 m DOF_{far} = \frac{29.81 \times 2}{29.81 - (2 - 0.05)} = \frac{59.62}{29.81 - 1.95} \approx \frac{59.62}{27.86} \approx 2.14 \, \text{m} DOFfar=29.81−(2−0.05)29.81×2=29.81−1.9559.62≈27.8659.62≈2.14m
步骤 4:计算总景深 D O F DOF DOF
D O F = D O F f a r − D O F n e a r = 2.14 − 1.88 = 0.26 m DOF = DOF_{far} - DOF_{near} = 2.14 - 1.88 = 0.26\, \text{m} DOF=DOFfar−DOFnear=2.14−1.88=0.26m
6. 总结
在这个例子中,当使用 50mm 焦距、f/2.8 光圈值,并对焦在 2 米远的物体上时,总景深约为 0.26米,其中:
- 前景深(最近清晰的距离)为 1.88米,
- 后景深(最远清晰的距离)为 2.14米。
相关文章:
成像基础 -- 景深计算
景深计算 景深(Depth of Field, DOF)指的是在摄影中,能够清晰成像的物体前后距离的范围。景深的大小取决于多个因素,包括焦距、光圈值、物距以及相机感光元件的尺寸。 1. 景深的主要参数 焦距( f f f)&a…...
Git中从dev分支恢复master分支
问题 需要从dev分支恢复master分支。之前搞错远程地址了,把master分支搞乱了,现在需要从dev分支恢复代码到master分支。 步骤 git checkout dev # 切换到 dev 分支 git branch -D master # 删除本地 master 分支 git checko…...
12.5 Linux_进程间通信_信号灯
概述 什么是信号灯: 信号灯也称为信号量,代表的是一类资源,其值表示系统中该资源的数量。 主要用途是实现进程、线程的同步。 什么是P/V操作: P操作就是申请资源,V操作就是释放操作。 信号灯的种类: …...
Linux——cp-mv-rm命令
cp命令 复制文件 cp test01.txt test02.txt 复制文件夹 cp -r hsy01 hsy02 mv命令 移动文件/文件夹 rm命令 删除文件 rm test.txt 删除文件夹(目录 rm -r hsy01 通配符 * 匹配任意内容 注意* 位置 强制删除-f root超级管理员...
上升点列
题目描述 在一个二维平面内,给定 n 个整数点 (xi,yi),此外你还可以自由添加 k 个整数点。 你在自由添加 k 个点后,还需要从 nk 个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为 1 而且…...
刷题 链表
面试经典150题 - 链表 141. 环形链表 class Solution { public:bool hasCycle(ListNode *head) {ListNode* slow head, *fast head;while (fast ! nullptr && fast->next ! nullptr) {slow slow->next;fast fast->next->next;if (slow fast) {return…...
SQL 语法学习指南
目录 前言1. SQL 的基本概念1.1 SQL 的作用1.2 SQL 的特点 2. SQL 的基础语法2.1 数据查询 - SELECT 语句2.2 数据插入 - INSERT 语句2.3 数据更新 - UPDATE 语句2.4 数据删除 - DELETE 语句 3. SQL 的进阶语法3.1 聚合函数3.2 表连接 - JOIN3.3 子查询 4. SQL 学习建议4.1 多实…...
低代码可视化-uniapp商城首页小程序-代码生成器
在设计一个小程序的首页时,包含轮播图、通知栏和商品列表这三个元素是非常常见且有效的布局方式。这样的设计既能够吸引用户的注意力,又能够高效地展示信息和商品。 轮播组件 小程序首页幻灯片通常位于小程序的顶部或显著位置,通过滑动屏幕可…...
Vue3 富文本:WangEditor
wangEditor 开源 Web 富文本编辑器,开箱即用,配置简单 wangEditor 1. 安装依赖包 npm install wangeditor/editor-for-vuenext --save 2. 在引用页面加入如下代码 <template><div style"border: 1px solid #ccc"><Toolbar …...
Unity实现自定义图集(四)
以下内容是根据Unity 2020.1.0f1版本进行编写的 在之前的篇章中已经把自定义图集在编辑器上的使用,以及运行时所需的信息都准备好了,接下来就是魔改UGUI的Image组件,使其能够像Image那样运行时如果引用的资源有打自定义图集,则加载对应自定义图集的Texture。 1、思路 …...
k8s-pod的管理及优化设置
Pod是Kubernetes(k8s)中最小的资源管理组件,也是最小化运行容器化应用的资源对象。以下是对Pod的详细介绍: 一、Pod的基本概念 定义:Pod是Kubernetes中可以创建和管理的最小单元,是资源对象模型中由用户创…...
软件测试面试题大全
什么是软件测试? 答案:软件测试是一系列活动,旨在评估软件产品的质量,并验证它是否满足规定的需求。它包括执行程序或系统以识别任何缺陷、问题或错误,并确保软件产品符合用户期望。 软件测试的目的是什么?…...
SQL第16课挑战题
1. 美国各州的缩写应始终用大写。更新所有美国地址,包括供应商状态(Vendors表中的vend_state)和顾客状态(customers表中的cust_state),使它们均为大写。 2. 第15课挑战题1要求将自己添加到customers表中,现在删除自己,…...
Python3 爬虫 中间人爬虫
中间人(Man-in-the-Middle,MITM)攻击是指攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据,使通信的两端认为其正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中…...
Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现
问题:Leetcode 50. Pow ( x , n ) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数。 算法: 具体实现流程如下: 代码: class Solution { public:double myPow(double x, int N) {double ans 1;long long n N;if (n <…...
Java SE vs Java EE 与 JVM vs JDK vs JRE
Java SE(Java Platform,Standard Edition): Java 平台标准版,Java 编程语言的基础,它包含了支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。Java SE 可以用于构建桌面应用程序或简单的服务器应用程序。…...
Linux YUM设置仓库优先级
1.安装yum-plugin-priorities优先级插件 yum install yum-plugin-priorities -y 2.设置仓库优先级 vim /etc/yum.repos.d/local.repo [local] namecentos7.5 baseurlfile:///mnt enable1 gpgcheck0 priority1 注释: priority1 #数字越小代表优先级越高ÿ…...
做一个不断更新的链接库
做一个不断更新的链接库 anaconda anaconda官方镜像源 anaconda清华镜像源 社区 CSDN CSDN-华为开发者空间 python开发库 股票爬虫 - akshare...
Ping32企业加密软件:保护数据安全
在数字化时代,数据安全已成为每个企业不可忽视的重要课题。无论是客户信息、财务报表,还是商业机密,数据的安全性直接关系到企业的声誉与运营。为了应对不断变化的安全威胁,选择一款可靠的企业加密软件尤为重要。在这里࿰…...
【Java】异常的处理-方式【主线学习笔记】
文章目录 前言1、处理概述2、Java异常处理机制(方式)方式一(抓抛模型):try-catch-finally方式二:throws 异常类型总结 前言 Java是一门功能强大且广泛应用的编程语言,具有跨平台性和高效的执行…...
Mermaid CLI 架构解析:企业级图表自动化实战指南
Mermaid CLI 架构解析:企业级图表自动化实战指南 【免费下载链接】mermaid-cli Command line tool for the Mermaid library 项目地址: https://gitcode.com/gh_mirrors/me/mermaid-cli Mermaid CLI 是一个基于 Node.js 和 Puppeteer 的命令行图表生成工具&a…...
GPEN图像修复新手入门:界面介绍与功能详解
GPEN图像修复新手入门:界面介绍与功能详解 1. 认识GPEN图像修复工具 你是否遇到过这样的情况:翻出老照片想分享给亲友,却发现照片已经泛黄、模糊甚至出现划痕?GPEN图像修复工具就是为解决这些问题而生的专业解决方案。这个由科哥…...
HunyuanVideo-Foley参数详解:采样步数、CFG scale、音频采样率影响分析
HunyuanVideo-Foley参数详解:采样步数、CFG scale、音频采样率影响分析 1. 核心参数概述 HunyuanVideo-Foley作为一款集视频生成与音效生成于一体的AI模型,其输出质量与多个关键参数密切相关。本文将深入解析三个核心参数:采样步数…...
CST、Sspp与色散曲线的关联
CST cst Sspp 色散曲线在电磁仿真领域摸爬滚打过的工程师,对色散曲线这个磨人的小妖精应该都不陌生。今天咱们就来聊聊怎么用CST Studio Suite里的本征模求解器(Eigenmode Solver)提取波导结构的色散曲线,手把手带你从懵逼到上手…...
如何在MATLAB中免费实现亚像素级变形测量:Ncorr 2D完整指南 [特殊字符]
如何在MATLAB中免费实现亚像素级变形测量:Ncorr 2D完整指南 🚀 【免费下载链接】ncorr_2D_matlab 2D Digital Image Correlation Matlab Software 项目地址: https://gitcode.com/gh_mirrors/nc/ncorr_2D_matlab 你是否曾为材料变形测量而烦恼&am…...
CentOS 8下openLDAP服务器搭建避坑指南:从第三方仓库到phpLDAPadmin配置
CentOS 8企业级openLDAP部署实战:从仓库选择到安全加固全解析 在当今企业IT架构中,目录服务作为身份认证和资源管理的核心组件,其重要性不言而喻。而openLDAP作为开源目录服务的标杆解决方案,凭借其轻量高效、跨平台兼容的特性&am…...
AI建站避坑指南:10个高频问题与风险防范全解析
用AI建站虽然快,但过程中隐藏的风险如果没到,轻则内容效果差,重则可能有版权或合规隐患。这份避坑指南,围绕大家最关心的10个核心问题,给出客观的分析和可操作的防范建议,帮你安心用好AI建站工具。\### 核心…...
SketchUp STL插件技术指南:从原理到实践的三维工作流构建
SketchUp STL插件技术指南:从原理到实践的三维工作流构建 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 技术原理…...
虚拟手柄技术深度剖析:ViGEmBus内核级输入模拟架构解析
虚拟手柄技术深度剖析:ViGEmBus内核级输入模拟架构解析 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏开发与输入设备兼容性领域…...
为什么工作越久的精英,最后都放弃了 MBTI?
很多人在职场和生活中遇到瓶颈,第一反应是去测测 MBTI 或者大五人格。 甚至很多大厂在招聘时,也会把这些测试当作金标准。但我观察到一个现象:真正处于决策核心的高净值人群,早就开始放弃这些“自报式”的性格测试了。为什么&…...
