感觉这个世界上最幸福的事情就是工作和兴趣结合到一起了。这一阵子总是在听再看有关摄影的种种,今天在objccn上又看到这个,哈哈~

轻轻一按,相机就把光子转化成了比特,于是一张照片就保存到了手机里。

一 一些基本概念

进光量:拍摄一张照片的过程被称之为曝光,曝光也指单位面积上光的数量。曝光有两种结果,一个是欠曝,一个是过曝。如果一张照片过度的欠曝或过曝的话,是很难修复的。

曝光档数:有三个要素可以影响曝光的进光量:快门速度,光圈,ISO。调整这三者中的任意一个让进光量翻倍或减半,就叫改变了“一档”曝光。这三个参数有无数种组合来达到同样进光量的效果。

快门速度:快门速度减慢一半,图像传感器就将捕捉两倍时间长度的光,也就是两倍数量的光子,或者说是两倍的进光量。对于高速运动的物体的摄影,我们可能希望还需要选择一个更快的快门速度,但是我们也可以有意滴选择一个长的快门速度来让物体模糊,以强调其运动感。

感光度(也被称为胶卷速度):用来衡量图像传感器对光的灵敏程度,以及因此带来的曝光噪音。每次将iso加倍,就只需要一半的进光量。但要为此付出代价,那就是相片的噪点将会变多。eg:在iso32时,iPhone传感器得到的图片将会有最少的噪点,但是同时也需要最多的光。在ISO1600时,iPhone图像传感器就只需要1/50的进光量,但是图片会有更多的噪点。

光圈:f/5.6 其中5.6表示镜头焦距与光圈的有效直径比例,光圈f值=镜头的焦距/光圈口径。iPhone的光圈值是固定的,f/2.2。光圈除了影响进光量,还会影响景深。这和对焦有关系,相机中的光学系统会将与相机一定距离范围内的物体渲染清晰。当我们改变光圈时,这个距离范围将变宽或者变窄。

结合:为什么晚上拍出来的照片要比白天拍出来的差?晚上进光量少,为了要有一个可接受的快门速度,自动曝光系统将调高ISO,也许会被调到相机允许的最大值。即使是这样还是不能达到足够的金光,自动曝光还会降低快门速度。这样的组合就造成了画面上更多的噪点,以及图像模糊。

焦距:也成为焦长,是光学系统中衡量光的聚集或发散的度量方式,指从透镜中心到光聚集之焦点的距离。也是照相机中,从镜片光学中心到底片\CCD\CMOS等成像平面的距离。具有短焦距的光学系统比长焦距的光学系统有更佳聚集光的能力。主要是放大倍率和视野角度。广角镜头放大倍率滴,因此可以让相机捕捉更大的区域。长焦镜头失焦就窄的多。

景深:由物距,镜头焦距,镜头光圈值决定。固定光圈时,景深和焦距成反比;固定放大率时,光圈越大景深越小。

有些好的办法可以让我们获得好的自动曝光。iOS的自动曝光逻辑回检查图像的全部部分,然后去猜测想要拍摄和曝光的主题是什么。如果画面一部分特别亮,其他地方又特别暗的话,相机是不能把所有东西都曝光好的。

对焦:相机只能将离相机一定距离范围内的物体渲染清晰,在这个范围内物体就是被聚焦的,而如果太近或太远而导致模糊的,它们就是失焦的。

图像传感器:相当于我们的视网膜,可以讲光火光子转化为电信号。

快门:iOS设备在内的许多小型设备使用的是回转快门。会一行一行的读取图片数据,因为每一行其实不是在同一时间读取的,所以会导致有时候场景中高速移动的物体变得很奇怪。

objccn-相机工作原理的更多相关文章

  1. 2D UI和3D UI的工作原理

    2D UI的工作原理 UI控件的位置在UI Root 的红框(视窗)上,也就是UI控件的z轴,相机的z轴,UI Root的z轴都是0,因为2D UI都是纯粹的2D图片按层次显示,不会不出现三维立体效果 ...

  2. camera理论基础和工作原理

    写在前面的话,本文是因为工作中需要编写摄像头程序,因为之前没有做过这类产品,所以网上搜索的资料,先整理如下,主要参考文章如下,如果有侵权,请联系我:另外,转载请注明出处.本文不一定全部正确,如果发现错 ...

  3. 图解WebGL&Three.js工作原理

    “哥,你又来啦?”“是啊,我随便逛逛.”“别介啊……给我20分钟,成不?”“5分钟吧,我很忙的.”“不行,20分钟,不然我真很难跟你讲清楚.”“好吧……”“行,那进来吧,咱好好聊聊” 一.我们讲什么? ...

  4. WebGL&Three.js工作原理

    一.我们讲什么? 我们讲两个东西:1.WebGL背后的工作原理是什么?2.以Three.js为例,讲述框架在背后扮演什么样的角色? 二.我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或 ...

  5. camera理论基础和工作原理【转】

    转自:http://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html 写在前面的话,本文是因为工作中需要编写摄像头程序,因 ...

  6. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...

  7. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  8. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  9. HashMap的工作原理

    HashMap的工作原理   HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...

  10. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

随机推荐

  1. 查看struct或class的内存布局

    适用于VC编译器(Visual Studio) 附加选项: /d1 reportSingleClassLayout[foo] 例如CItem(注意后面没有空格) /d1 reportSingleCla ...

  2. web响应式图片设计实现

    .header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...

  3. cookie学习指南

    一.什么是cookie cookie也叫HTTP cookie,最初是用来客户端和服务器端进行会话用的,由于HTTP是一种无状态的协议,为了维持用户和跟踪用户信息,所以引入了cookie和sessio ...

  4. 使用属性动画 — Property Animation

    属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...

  5. 利用Microsoft.Practices.Unity的拦截技术,实现.NET中的AOP

    1.记住这个单词的意思:Interception(拦截) 2.首先说一下原理和背景 原理:所谓的AOP就是面向切面编程,这里不多说,百度搜索. 目的:个人认为是为了解耦,部分代码跟业务代码分离,业务代 ...

  6. Asp.Net MVC<八>:View的呈现

    ActionResult 原则上任何类型的响应都可以利用当前的HttpResponse来完成.但是MVC中我们一般将针对请求的响应实现在一个ActionResult对象中. public abstra ...

  7. noip2016十连测round2

    A: Divisors 题意:给定 m 个不同的正整数 a 1 ,a 2 ,...,a m ,请对 0 到 m 每一个 k 计算,在区间 [1,n] 里有多少正整数 是 a 中恰好 k 个数的约数. ...

  8. 30秒懂SQL中的join(2幅图+30秒)

    废话不多说,直接上图秒懂. t1表的结构与数据如下: t2表的结构与数据如下: inner join select * from t1 inner join t2 on t1.id = t2.id; ...

  9. PHP -- Perl风格正则表达式

    1.正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*.+ 和?等),以及模式修正符三个部分组成.2.在于Perl兼容的正则表达式函数中使用模式时一定要给 ...

  10. hdu5468 Puzzled Elena

    hdu5468 Puzzled Elena 题意 求一棵子树内与它互质的点个数 解法 容斥 我们先求出与它不互质的数的个数,再用总数减去就好. #include <cstdio> #inc ...