手机相机成像原理 : 原来照片是这样产生的 !

1. 前言
在手机APP项目开发中,需要调用相机来实现拍照和视频的录制 。
但有时候仅仅是知道怎么调用 API是不够的,还需要去了解其底层原理 。
这篇文章从硬件的角度,来说明相机的成像原理,看完之后也许会豁然开朗 : 原来照片是这样产生的 !
2. 小孔成像 2.1 小孔成像原理
要讲清楚摄像头的成像原理,就得介绍下小孔成像的原理 。
中国春秋时代的墨子,发现在一间黑暗的屋子朝阳的墙上开一个小孔,人对着小孔站在屋外,屋里相对的墙上就会出现一个倒立的人影,这就是全世界最早关于小孔成像的记载 。
我们也可以来做个试验,在一个暗的环境里面,准备一个蜡烛和两块挡板,蜡烛放在最左侧,一块挡板放在中间,一块挡板放在最右侧 。
中间的挡板要开一个很小的孔,然后用打火机点燃蜡烛,可以发现在最右侧的挡板上,会呈现出蜡烛倒立的影像 。
这是为什么呢 ?
我们来看一下火焰最顶端的这点,发射出来的光,大部分都会被隔板所挡住
只有小孔这一点可以穿过,照射到右侧纸板对应的那个点 。
蜡烛其他位置的点也是同理,如下图所示 。
这样子就在最右侧的纸板上呈现出蜡烛倒立的影像了 。
小孔成像证明,光是沿着直线传播的,它所形成的是上下、左右颠倒的像 。
2.2 凸透镜
在搜索资料的时候,看到一个B站的UP主的视频 : 把天空搬进房间,这就是理科生的浪漫吗?,很有艺术浪漫细胞哦,想到了使用小孔成像的原理,将窗外的风景搬入室内 。
她是怎么做到的呢 ? 其实也就是把窗户全部用锡纸包住,只留一个小孔,这样室外的风景就会倒立这投影到房间里的白墙上了,不过这样投出的画面会很暗淡 。(因为光线不足)
这时候就需要使用到凸透镜了,凸透镜具有聚拢光线的效果,它既可以收集足够多的入射光线,又可以让出射光线集中的打在屏幕上 。

手机相机成像原理 : 原来照片是这样产生的 !

文章插图
所以只要选择合适焦距的凸透镜,就可以让窗外的风景清晰地投屏到白墙上了 。
手机摄像头的成像原理也类似的,下面我们来看一下 。
3. 相机成像原理 3.1 手机相机的链路
先来整体看一下手机相机的链路,总共有5步,本篇文章会针对前3部分(硬件部分)进行讲解 :
Lens : 光线通过透镜,到达COMS图像传感器Image: CMOS图像传感器会将光信号转化为电信号,再通过内部的ADC转化为数字信号ISP : 数字信号会传输给ISP进行处理,主要进行矫正、白平衡、曝光控制等SOC : 这一步就在应用层了(比如App),通过CPU和GPU对图像数据进行后处理,比如添加滤镜等操作 : 最终将图像数据显示到屏幕上 3.2Lens
手机相机镜头的硬件构成如图所示
对应到小孔成像上,光圈就是小孔,透镜组承担了汇聚光线的作用,CMOS图像传感器就是画布 。
接下来来讲下每个具体的组件的作用 :
对焦马达 & OIS光学防抖 : 现在的对焦马达和OIS都是合在一起的3.3 CMOS图像传感器
CMOS图像传感器用来接收光信号,并转化为电信号,再通过内部的ADC转化为数字信号
3.3.1 微透镜
在彩色滤镜阵列(CFA)的上方,用来把光线聚集到每一个像素点上,每一个像素点上方都有一个微透镜,6400万像素就有6400万个微透镜,1亿像素就有1亿个微透镜
3.3.2 彩色滤镜阵列 (CFA)
CFA的作用就是赋予图像颜色,阳光通过CFA的某个像素的时候,只有对应颜色(红/绿/蓝)的光线才能进入 。
一般用的就是拜耳(Bayer) 阵列 (RGGB 排列),由于人眼对于绿色更敏感,所以有两个绿色像素,红色和蓝色像素各占一个 。