相机成像基础

一、引言

在这个内卷的时代,手机厂商也在内卷"影像",每次新品发布,都将影像效果带到一个新的高度。你是否好奇过,手机或者相机是如何记录下我们的幸福时刻的,本篇文章从相机成像基本流程、相机成像原理以及相机构造三部分部分为大家揭秘。

二、相机成像基本流程

光线经过镜头照射在感光元件上,感光元件将接收到的光信号转换为电信号,电信号经过数字化可得到RAW图,RAW图再经过ISP(Image Signal Processor)处理得到YUV图,我们平时使用的多为YUV图,这就是相机成像的基本流程。关于RAW图、YUV图以及ISP的详细内容请参考后续文章,本篇不做过多介绍。

三、相机成像原理

相机成像原理大家中学都学过,简单来说就是凸透镜成像,光线经过透镜形成虚像,如下图所示。外部的光线经过镜头照在感光元件上,通过控制镜头的伸缩,可以改变光路,实现更清楚或者更广阔视角的图像。

四、相机构造

整个相机模组可以理解为由镜头和传感器两部分组成。镜头负责接收外部的光线,传感器负责将光线转换为电信号,进而转换为CPU可以处理的数字信号。

下图是简易的镜头模组构造,从上到下依次是镜头lens、音圈马达VCM、滤光片IR/蓝玻璃BG、支架Bracket、感光芯片Sensor、印刷电路板PCB、连接器以及SMT搭载元器件。下面介绍镜头lens、音圈马达VCM、滤光片IR/蓝玻璃BG和感光芯片Sensor四部分。

4.1 镜头lens

镜头Lens是一个能够接收光信号并汇聚光信号于感光器件上的装置,可以说主要作用就是就是汇聚光线。

4.1.1 Lens的组成

现代镜头为了成本和效果的考虑,不止是一个简单的玻璃透镜,而是由玻璃材质和塑料材质共同完成。玻璃材质比塑料材质成本高,但玻璃材质的透光效果更好。

4.1.2 Lens的主要参数

  • 焦距 镜头焦距的长短决定着拍摄的成像大小,视场角大小,景深大小和画面的透视强弱。一般来说对于单片镜头就是镜头中心到焦点的距离,而相机镜头是由多片透镜组合,就要复杂许多。这里焦距就指的是从镜头的中心点到感光元器件(CCD)上所形成的清晰影像之间的距离。

  • 视场角(FOV) 我们常用水平视场角来反映画面的拍摄范围。焦距f越大,视场角越小,在感光元件上形成的画面范围越小;反之,焦距f越小,视场角越大,在感光元件上形成的画面范围越大。

  • F值(口径比) F值即指镜头之明亮度(即镜头的透光量)。F=镜头焦距/光圈直径。F值相同,长焦距镜头的口径要比短焦距镜头口径大。

  • 光圈 光圈是位于镜头内部的、可以调节的光学机械性阑孔,可用来控制通过镜头的光线的多少。

  • 景深 当某一物体聚焦清晰时,从该物体前面的某一段距离到其后面的某一段距离内的所有景物也都相当于是清晰的。焦点相当清晰的这段从前到后的距离就叫做景深。

4.2 音圈马达VCM

VCM(Voice Coil Motor)音圈马达应用在对焦上,也就是AF模组,通过音圈马达可以移动镜头至最佳清晰点。 VCM的原理就是在永久磁场中,利用马达的线圈电流来改变弹簧片的位置,导致lens变焦,使得成像最清晰。

4.3 滤光片

滤光片IR/蓝玻璃BG都是Bayer滤光片的一种,主要作用是获取彩色图片,详细内容请参考上一篇文章"Bayer Pattern(拜耳阵列) "。

4.4 Sensor

感光芯片sensor,可以称为图像传感器,是整个摄像头组中的核心部件。它主要的作用就是将光信号转换为电信号,sensor元器件的优劣直接影响成像效果。现在,各个手机大厂都在sensor传感器上做文章,从最开始的几百万像素到现在主流几千万像素,手机厂在相机上非常"内卷"。

一个专注于“嵌入式知识分享”、“DIY嵌入式产品”的技术开发人员,关注我,一起共创嵌入式联盟。微信公众号:“嵌入式产品侠”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/191077.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt之QFileInfo】使用

描述 QFileInfo类提供了与系统无关的文件信息。 QFileInfo提供有关文件的名称和位置(路径)在文件系统中的信息,以及它的访问权限、是否为目录或符号链接等。还可以获取文件的大小和最后修改/读取时间。QFileInfo还可以用于获取关于Qt资源的信…

二分 模板

好久没更新博客了,之前一直在准备比赛,忙着学算法和写题,今天写了一道二分答案的题,发现之前那种二分写法有一丢丢的问题,导致有道题只能过97%的点。 emmm,还是把最经典的二分的板子写在这记录下(这里参考…

使用 Java 客户端通过 HTTPS 连接到 Easysearch

Easysearch 一直致力于提高易用性,这也是我们的核心宗旨,然而之前一直没有官方的 Java 客户端,也对用户使用造成了一些困扰,现在,我们正式发布了第一个 Java 客户端 Easysearch-client:1.0.1。 这一里程碑式的更新为开…

【C++进阶】多态

目录 一、多态的概念 二、多态的定义及实现 多态的构成条件: 2.override: 检查派生类虚函数是否重写了基类某个虚函数,如果没有重写编译报错 三、抽象类的认识 四、多态的底层原理分析(一) 一、多态的概念 多态的概念:通俗来说&#xf…

CANdelaStudio 使用教程4 编辑State

文章目录 简述1、State Groups2、Dependencies3、 Defaults State1、 会话状态2、 新增会话状态3、 编辑 服务对 State 的依赖关系 State Diagram 简述 1、State Groups 2、Dependencies 在这里,可以编辑现有服务在不同会话状态或安全访问状态的支持情况和状态转换…

redhat9.3配置国内yum阿里源

由于新建的Redhat9.3在未注册激活之前是没有yum源的配置文件的,所以需要我们自己新建一个yum源文件的配置文件 vim /etc/yum.repos.d/aliyun_yum.repo 内容如下: [ali_baseos] nameali_baseos baseurlhttps://mirrors.aliyun.com/centos-stream/9-str…

【Vue】@keyup.enter @v-model.trim的用法

目录 keyup.enter v-model.trim 情景一: 情景二: keyup.enter 作用:监听键盘回车事件 上一篇内容: 记事本 https://blog.csdn.net/m0_67930426/article/details/134630834?spm1001.2014.3001.5502 这里有个添加任务的功能&…

MyBatis的解析和运行原理

文章目录 MyBatis的解析和运行原理MyBatis的工作原理 MyBatis的解析和运行原理 MyBatis编程步骤是什么样的? 1、 创建SqlSessionFactory 2、 通过SqlSessionFactory创建SqlSession 3、 通过sqlsession执行数据库操作 4、 调用session.commit()提交事务 5、 调用…

STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片)

STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片) 原理图手册说明功能方框图引脚功能 片内寄存器通信寄存器(RS2、RS1、RS00、0、0)设置寄存器时钟寄存器数据寄存器(RS2、RS1、RS00、1、1)测试寄存器&#xff08…

第六届 传智杯初赛B组

文章目录 A. 字符串拼接🍻 AC code B. 最小差值🍻 AC code C. 红色和紫色🍻 AC code D. abb🍻 AC code E. kotori和素因子🍻 AC code F. 红和蓝🍻 AC code 🥰 Tips:AI可以把代码从 j…

单片机AT89C51直流电机控制电路PWM设计

wx供重浩:创享日记 对话框发送:直流电机 获取论文报告源码源程序原理图 此文将介绍一种直流电机,详细阐述了用单片机输出口所给占空比的不同实现电机的调速的设计方法;着重讨论L298用于电机驱动时特有的优势。直流电机调速具有…

npm WARN npm npm does not support Node.js v13.9.0

Microsoft Windows [版本 10.0.19045.2965] (c) Microsoft Corporation。保留所有权利。C:\Users\Administrator>node -v v13.9.0C:\Users\Administrator>npm -v npm WARN npm npm does not support Node.js v13.9.0 npm WARN npm You should probably upgrade to a newe…

2023nacos源码解读第4集——整体了解nacos源码模块

文章目录 1、类Linux tree的windows treee工具2、源码目录结构3、模块依赖关系 1、类Linux tree的windows treee工具 windows 自带的tree 不够用,使用node npm安装一个类Linux 的treee npm install -g cnpm --registryhttps://registry.npm.taobao.org npm config…

GWAS:plink进行meta分析

之前教程提到过Metal是可以做Meta分析,除了Metal,PLINK也可以进行Meta分析。 命令如下所示: plink --meta-analysis gwas1.plink gwas2.plink gwas3.plink logscale qt --meta-analysis-snp-field SNP --meta-analysis-chr-field CHR --me…

.net 8 发布了,试下微软最近强推的MAUI

先看下实现的效果&#xff1a; 下面发下XAML文件&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <ContentPage xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns:x"http://schemas.microsoft.com/winfx/2009/…

MutationObserver 监视 DOM 树改变的api

1、介绍 MutationObserver是一个构造函数&#xff0c;可以用来监听某个节点的变化&#xff0c;当节点发生变化时&#xff0c;可以执行一些回调函数。 它不会立即执行&#xff0c;需要调用MutationObserver的observe方法&#xff0c;传入你想要监听的节点&#xff0c;以及一些配…

5.一维数组——输入一行字符,统计其中各个大写字母出现的次数。

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、举一反三一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为一维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 输入一行字符&#xff0c;统计其中各个大写字母出现的…

平衡树 - splay

相比于之前的普通平衡树进行左旋右旋来比&#xff0c;splay的适用性更高&#xff0c;使用更广泛。 核心函数rotate、splay函数&#xff0c;其它的根据需要进行修改。 int n, m; struct Node {int s[2], p, v, cnt; // 左右儿子、父节点、值、出现数量int size, flag; // 子树大…

leetcode面试经典150题——32 串联所有单词的子串(中等+困难)

题目&#xff1a; 串联所有单词的子串(1中等) 描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&…

人力资源管理后台 === 员工新增修改

目录 1.员工管理-导出excel 2.员工管理-excel组件封装 3.员工管理-下载导入模板 4.员工管理-员工导入-上传excel 5.员工管理-删除员工 6.员工详情和路由 7.员工详情-表单数据校验 8.员工详情-封装部门级联组件 9.员工详情-级联组件-双向绑定 10.员工详情-新增员工 11…