鹰眼视图——数码相机是如何成像的(精简版)

举报
k3soft 发表于 2018/08/03 09:01:37 2018/08/03
【摘要】 对于没有接触过数码成像这块的朋友来说,简单的了解一下数码相机的成像原理是很有必要的,下面就将我的搜集的一些简单的介绍一下。传统相机利用感光剂在光照下的化学反应实现对图像的记录。例如氯化银,当光线照射氯化银,后者会分解成纯银和氯气,金属银颗粒呈现黑色。因此,底片颜色越深代表光线越强,颜色越浅代表光线越弱。黑白照片就是这样拍出来。彩色相机是在黑白相机的基础上通过对红、绿、蓝进行滤光,形成三张底...

 对于没有接触过数码成像这块的朋友来说,简单的了解一下数码相机的成像原理是很有必要的,下面就将我的搜集的一些简单的介绍一下。

传统相机利用感光剂在光照下的化学反应实现对图像的记录。例如氯化银,当光线照射氯化银,后者会分解成纯银和氯气,金属银颗粒呈现黑色。因此,底片颜色越深代表光线越强,颜色越浅代表光线越弱。黑白照片就是这样拍出来。

彩色相机是在黑白相机的基础上通过对红、绿、蓝进行滤光,形成三张底片,然后将三张底片合成之后完成的。

 数码相机与传统相机的最大不同是使用传感器CCD或者CMOS取代了感光剂,利用AD转换,实现对光信号转换为电信号。

image.png


      图像传感器将光线转化成电流,光线越亮,电流的数值就越大;光线越暗,电流的数值就越小。所以,如果用0255的范围,表示光线的亮度,最亮的光线是白光,数值是十六进制的FF,最暗的光线是黑光(没有光),数值是十六进制的00

      图像传感器的表面,分成若干个捕捉点,每个点都会产生一个数值,表示该点感受到的光线亮度,这就叫做"像素"。像素越多,图像细节就越丰富。如果一台相机的像素是1600x1200,就说明图像传感器横向有1600个捕捉点,纵向有1200个,合计192万个。

     但是如果只是感受光强,只能记录图片的灰度值,如何记录颜色。我们可以回想一下,传统的黑白相机是如何进化到彩色相机的,采用三原色过滤最后合成的方式。数码相机也可以沿用这样的思路,但是需要三块传感器,成本太高,无法实用。

1974年,柯达公司的工程师布赖斯·拜尔提出了一个全新方案,只用一块图像传感器,就解决了颜色的识别。他的做法是在图像传感器前面,设置一个滤光层(Color filter array,上面布满了滤光点,与下层的像素一一对应。也就是说,如果传感器是1600x1200像素,那么它的上层就有1600x1200个滤光点。
     每个滤光点只能通过红、绿、蓝之中的一种颜色,这意味着在它下层的像素点只可能有四种颜色:红、绿、蓝、黑(表示没有任何光通过)。

接下来的问题就是,如果一个像素只可能有四种颜色,那么怎么能拍出彩色照片呢?这就是布赖斯·拜尔聪明的地方,前面说了,每个滤光点周围有规律地分布其他颜色的滤光点,那么就有可能结合它们的值,判断出光线本来的颜色。以黄光为例,它由红光和绿光混合而成,那么通过滤光层以后,红点和绿点下面的像素都会有值,但是蓝点下面的像素没有值,因此看一个像素周围的颜色分布----有红色和绿色,但是没有蓝色----就可以推测出来这个像素点的本来颜色应该是黄色

    http://3ms.huawei.com/km/static/blog/images/gif/grey.gif

所以,拜耳所用的方法是已牺牲成本的方式来降低了成本。好在计算结果相当准确,这种做法得到了广泛应用。

 

    高级的数码相机,还提供未经算法处理的原始马赛克图像,这就是raw格式(raw image format。计算的过程成为去马赛克,如下图。

    image.png

   上图 这种计算颜色的方法,就叫做"去马赛克"demosaicing)。上图的下半部分是图像传感器生成的"马赛克"图像,所有的像素只有红、绿、蓝、黑四种颜色;上半部分是"去马赛克"后的效果,这是用算法处理的结果。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。