当前位置: 首页 > news >正文

相机光学(三十七)——自动对焦原理

1.自动对焦的三种方式

  目前在手机上采用的自动对焦系统包括反差对焦、相位对焦和激光对焦三种方案,下面我们来看一下它们的工作原理和相互之间的区别是什么。

1.1反差对焦【CDAF】- Contrast Detection Auto Focus

  反差对焦是目前普及率最高、使用最广泛、成本相对较低的自动对焦技术,它又被成为对比度对焦。
  对焦的过程就是通过移动镜片来使对焦区域的图像达到最清晰的过程,所以对焦成功以后,直观的感受就是焦点的清晰度最高,而焦点以外的区域则表现为相对模糊状态。
在这里插入图片描述
  采用反差对焦的相机,当我们对准被摄物体时,镜头模组内的马达便会驱动镜片从底部向顶部移动,在这个过程中,像素传感器将会对整个场景范围进行纵深方向上的全面检测,并持续记录对比度等反差数值。找出反差最大位置后,运动到顶部的镜片则会重新回到该位置,完成最终的对焦。
  所以使用反差对焦的手机在拍照的过程中,如果取景框中的物体位置、内容发生变动,我们的肉眼就可以观察到屏幕上的内容会由模糊到清晰再到模糊的过程,有一种镜片在前后推拉的直观感受。
  因为反差对焦的工作方式是进行对比度检测,因此相机镜片必须要前后移动完整记录所有的图像信息,然后计算出对比度最高的位置,才能最终完成对焦,所以反差对焦的一个主要缺点就是耗费的时间较长。

1.2相位对焦【PDAF】- Phase Detection Auto Focus

  单反相机普遍采用相位对焦系统,相比于数码单反相机上的相位对焦,手机上的相位对焦则是直接将自动对焦传感器与像素传感器直接集成在一起,即从像素传感器上拿出左右相对的成对像素点,分别对场景中的物体进行进光量等信息的检测,通过比对左右两侧的相关值情况,便会迅速找出准确的对焦点,之后镜间马达便会一次性将镜片推动到相应位置完成对焦。
在这里插入图片描述
  由于取消了之前的检测过程,且镜间马达需要移动的距离更短,对焦速度明显更快,在画面上也不再会有来回对焦的情况,对于拍摄视频而言,效果也会更加自然。
  不过,相位对焦也并不是十分完美,它对光线的要求就比较高,在弱光拍摄环境下,相位对焦就无能为力了。

1.3激光对焦【LDAF】- Laser Detection Auto Focus

  激光对焦本来是军方的技术,后来因为科技的进步才逐渐转为民用,当然这里的激光不是对人有害的镭射激光,而是红外光线。
在这里插入图片描述
  激光对焦是通过后置摄像头旁边的红外激光传感器向被摄物体发射低功率激光,经过反射后被传感器接收,并计算出与被摄物体之间的距离。之后镜间马达便直接将镜片推到相应位置,完成对焦。和相位对焦一样,同样是一次完成。
  激光对焦技术对于微距、弱光环境以及反差不够明显的区域,效果显著,能够有效提高手机在这些情况下的对焦成功率,只是在对焦速度上,激光对焦比较一般。而在光线正常的条件下,激光对焦的速度和相位对焦一样非常之快。
  一般的激光对焦有效距离只有40~1250px,超出这个距离时,在精度与速度上就会大打折扣,而手机厂商在此基础上进行了改良,如V8采用的是意法半导体新推出的解决方案,在3000px的对焦距离内,对焦精确度与速度上获得显著提升,而且在弱光和纯色环境中表现优秀。

2.三种对焦系统对比

  在目前的智能手机中,相位对焦以及激光对焦技术都是与反差对焦同时存在的,也就是混合对焦。在相位对焦或激光对焦无法工作的场景下,或当我们用触控的方式直接选择对焦点的情况下,手机依然还是会使用反差方式进行对焦。
在这里插入图片描述

相关文章:

相机光学(三十七)——自动对焦原理

1.自动对焦的三种方式 目前在手机上采用的自动对焦系统包括反差对焦、相位对焦和激光对焦三种方案,下面我们来看一下它们的工作原理和相互之间的区别是什么。 1.1反差对焦【CDAF】- Contrast Detection Auto Focus 反差对焦是目前普及率最高、使用最广泛、成本相对…...

Go语言现代web开发05 指针和结构体

指针 Pointers are complex data types that store the memory address of value. Simply put, if we have a value stored in the memory address as 100 and a pointer to that value, the pointer value will be 100. The default value for a pointer is nil. Nil pointer…...

Postgresql 删除数组中的元素

extra为 {“a”: [null, 3, null],“b”: 111} 使用sql 将extra中a中的null移除 第一步: 首先先把[null, 3, null]移除, select json_agg(elem) filter ( where elem ! null ) from (select jsonb_array_elements([null,3,null]::jsonb) as elem) t;这…...

docker 多服务只暴露一个客户端

业务场景 docker部署多个服务时候,当为了安全考虑 部署了多个服务,数据库,缓存库,文件服务器啥的,如果全都暴露的话可能会增加资源侵入的风险,所以只需要挂载一个客户端端口给外部访问即可,其他服务均在内网,保障资源安全 docker 网络 可以把容器们都放在同一网络下,由于docke…...

DFS算法专题(二)——穷举vs暴搜vs深搜vs回溯vs剪枝【OF决策树】

目录 1、决策树 2、算法实战应用【leetcode】 2.1 题一:全排列 2.2.1 算法原理 2.2.2 算法代码 2.2 题二:子集 2.2.1 算法原理【策略一】 2.2.2 算法代码【策略一】 2.2.3 算法原理【策略二,推荐】 2.2.4 算法代码【策略二&#x…...

Spring Security 快速开始

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency> 一、认证 1、从数据中读数据完成认证 Service public class MyUserDetailsService implements UserDeta…...

Lua5.3 参考手册

《Lua 5.3 参考手册》是对 Lua 5.3 版本语言的官方定义。这份手册详细描述了 Lua 语言的语法、语义以及标准库和 C API。它是由巴西里约热内卢 Pontifical Catholic 大学的 PUC-Rio 团队开发的&#xff0c;并且是一个自由软件&#xff0c;广泛应用于世界各地的产品和项目中【9†…...

Centos如何配置阿里云的yum仓库作为yum源?

背景 Centos在国内访问官方yum源慢&#xff0c;可以用国内的yum源&#xff0c;本文以阿里云yum源为例说明。 快速命令 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a…...

力扣139-单词拆分(Java详细题解)

题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完背包&#xff0c;所以现在的题解都是以背包问题为基础再来写的。 如果大家不懂背包问题的话&#…...

CSS —— display属性

用于指定一个元素在页面中的显示方式 HTML中标签元素大体被分为三种类型&#xff1a;块元素、行内元素和行内块元素 块元素 &#xff1a;block 1.独占一行 2.水平方向&#xff0c;占满它父元素的可用空间&#xff08;宽度是父级的100%&#xff09; 3.垂直方向&#xff0c;占据的…...

BTC ETF资金流入暴涨400%,市场下一步将如何发展?

近期&#xff0c;BTC现货ETF&#xff08;交易所交易基金&#xff09;市场出现了显著的资金流入&#xff0c;尤其是在9月10日&#xff0c;BTC ETF吸引了近1.17亿美元的资金流入&#xff0c;相较于前一天的3729万美元&#xff0c;暴涨了400%。这种现象引发了市场广泛关注&#xf…...

视频监控管理平台LntonAIServer视频智能分析抖动检测算法应用场景

在视频监控系统中&#xff0c;视频画面的稳定性对于确保监控效果至关重要。抖动现象是指视频画面中存在不稳定或频繁晃动的情况&#xff0c;这可能会影响视频的清晰度和可读性。LntonAIServer通过引入抖动检测功能&#xff0c;帮助用户及时发现并解决视频流中的抖动问题&#x…...

初识php库管理工具composer的体验【爽】使用phpword模板功能替换里面的字符串文本

需求&#xff1a; 做了一个租赁的项目&#xff0c;里面要求签署个人授权协议&#xff0c;里面要填写姓名&#xff0c;手机号&#xff0c;身份证号&#xff0c;签署日期等参数&#xff0c;格式如下图 格式&#xff1a; 如上图&#xff0c;word中的字符串模板变量使用${varname…...

每日一问:C++ 如何实现继承、封装和多态

每日一问&#xff1a;C 如何实现继承、封装和多态 C 是一门面向对象编程语言&#xff0c;通过继承、封装和多态这三个核心特性实现了对复杂系统的高效管理和扩展。继承让代码重用性得以提升&#xff0c;封装保护数据的完整性&#xff0c;而多态通过不同的接口实现了灵活性。本文…...

STM32常用数据采集滤波算法

例如&#xff0c;STM32进行滤波处理时&#xff0c;主要目的是处理数据采集过程中可能产生的噪声和尖刺信号。这些噪声可能来自电源干扰、传感器自身的不稳定性或其他外部因素。 1.一阶互补滤波 方法&#xff1a;取a0~1,本次滤波结果&#xff08;1-a&#xff09;本次采样值a上…...

二分系列(二分查找)9/12

一、分情况讨论 1.左闭右闭:[left,right] 因为是左闭右闭&#xff0c;所以left和right都能直接取到。 #这里将>放到一起&#xff0c;当nums[mid]>target的时候&#xff0c; 要更新右边界&#xff0c;rightmid-1,这样就把一些相同的情况也切出去了 可以理解为找的第一个…...

如何通过可视化大屏,助力智慧城市的“城市微脑”建设?

在智慧城市的宏伟蓝图中&#xff0c;常常面临着一个关键挑战&#xff1a;如何确保这些理念和技术能够真正地惠及城市的每一个角落&#xff0c;每一个产业&#xff0c;以及每一位市民。问题的核心在于城市的具体应用场景&#xff0c;无论是横向的社区、园区、镇街、学校、酒店、…...

何时空仓库

某仓库现存货物 s 箱&#xff0c;每天上午出货 m 箱、下午进货 n 箱&#xff0c;若s≥m>n≥0&#xff0c;则第 k 天将会出现空仓的情况。请你帮仓库管理员编写程序&#xff0c;输入s、m 和 n&#xff0c;计算并输出 k。 输入格式 s,m,n (s≥m>n≥0) 输出格式 k 输入样例…...

美创获评CNVD年度原创漏洞发现贡献单位!

9月10日&#xff0c;第21届中国网络安全年会暨网络安全协同治理分论坛在广州成功举办。会上&#xff0c;美创科技首次获评“CNVD年度原创漏洞发现贡献单位”。 美创科技依托第59号安全实验室&#xff0c;专注数据安全技术和攻防研究。凭借深厚的技术积累与优势&#xff0c;被遴…...

Spring 循环依赖原理及解决方案

一、什么是循环依赖 循环依赖指的是一个实例或多个实例存在相互依赖的关系&#xff08;类之间循环嵌套引用&#xff09;。 举例&#xff1a; Component public class AService {// A中注入了BAutowiredprivate BService bService; }Component public class BService {// B中也…...

OpenClaw+GLM-4.7-Flash:低成本搭建24/7内容处理助手

OpenClawGLM-4.7-Flash&#xff1a;低成本搭建24/7内容处理助手 1. 为什么选择本地模型与OpenClaw组合 去年我在处理个人知识管理时遇到了一个典型矛盾&#xff1a;既需要AI辅助完成资料收集、草稿生成等重复工作&#xff0c;又对第三方API的隐私风险和持续成本心存顾虑。直到…...

告别纸上谈兵:在Multisim里调试交通灯仿真时,我踩过的这些坑希望你避开

告别纸上谈兵&#xff1a;在Multisim里调试交通灯仿真时&#xff0c;我踩过的这些坑希望你避开 第一次在Multisim里搭建完整的交通灯控制系统时&#xff0c;我以为只要按照教科书上的电路图连接好芯片和元件&#xff0c;仿真就能一帆风顺。但现实给了我当头一棒——数码管显示乱…...

DS1202示波器功能详解与实战操作指南

1. DS1202示波器核心功能解析 第一次拿到DS1202示波器时&#xff0c;面对密密麻麻的按键和接口确实有点懵。但用久了就会发现&#xff0c;它的设计其实非常人性化。咱们先从最常用的垂直控制区说起——这是调节波形高低胖瘦的关键区域。 垂直位移按键就像给波形装了个电梯&…...

零门槛构建专属A股数据平台:3大优势+4步部署+5类应用场景

零门槛构建专属A股数据平台&#xff1a;3大优势4步部署5类应用场景 【免费下载链接】AShareData 自动化Tushare数据获取和MySQL储存 项目地址: https://gitcode.com/gh_mirrors/as/AShareData 还在为量化研究时反复下载数据而抓狂&#xff1f;每次回测都要等待API响应&a…...

BepInEx终极指南:快速上手Unity游戏插件框架

BepInEx终极指南&#xff1a;快速上手Unity游戏插件框架 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 你是否曾为Unity游戏模组安装的复杂性而烦恼&#xff1f;插件文件散落各处…...

OFA-Image-Caption在AIGC内容创作中的应用:自动化生成图片社交媒体文案

OFA-Image-Caption在AIGC内容创作中的应用&#xff1a;自动化生成图片社交媒体文案 你有没有过这样的经历&#xff1f;手头攒了一堆产品图、活动照或者随手拍的美景&#xff0c;想发到社交媒体上&#xff0c;却对着屏幕半天憋不出一句像样的文案。要么写得干巴巴没人看&#x…...

跨设备电子书同步终极指南:Koodo Reader 2.3.1完整教程

跨设备电子书同步终极指南&#xff1a;Koodo Reader 2.3.1完整教程 【免费下载链接】koodo-reader A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux and Web 项目地址: https://gitcode.com/GitHub_Trending/koo/koodo-reader…...

告别网络盲区:手把手教你用Wireshark抓包分析IEEE 1905.1拓扑发现协议

实战解析&#xff1a;用Wireshark透视IEEE 1905.1拓扑发现协议的运行机制 当你面对一个由Wi-Fi、电力线和以太网组成的复杂混合网络时&#xff0c;是否曾好奇这些设备是如何自动发现彼此并构建出完整拓扑图的&#xff1f;这正是IEEE 1905.1拓扑发现协议的魔力所在。不同于枯燥的…...

C++ 模板类型推导的底层实现

C模板类型推导的底层实现 C的模板类型推导是现代C编程中不可或缺的核心机制&#xff0c;它使得泛型编程变得灵活而高效。从简单的函数模板到复杂的元编程&#xff0c;类型推导在编译期间自动推断模板参数&#xff0c;减少了冗余代码。其底层实现机制却鲜为人知。本文将揭开模板…...

音频处理必备:5分钟搞懂IIR和FIR滤波器的区别与应用场景

音频处理必备&#xff1a;5分钟搞懂IIR和FIR滤波器的区别与应用场景 在音乐制作和音频工程领域&#xff0c;滤波器是塑造声音的核心工具之一。无论是调整均衡、消除噪声还是创造特殊音效&#xff0c;都离不开对IIR和FIR这两类滤波器的深入理解。许多刚入门的音频工程师常常困惑…...