感觉这个世界上最幸福的事情就是工作和兴趣结合到一起了。这一阵子总是在听再看有关摄影的种种,今天在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. Switch&NAT 测试

    测试环境: PC1:Windows10 iperf3 PC2:Ubuntu iperf3 都装有千兆网卡,直连的iperf速度是935Mbps. 因为TXRX两个方向的数据是差不多的,下面的测试数据只 ...

  2. C#基础系列——多线程的常见用法详解

    前言:前面几节分别介绍了下C#基础技术中的反射.特性.泛型.序列化.扩展方法.Linq to Xml等,这篇跟着来介绍下C#的另一基础技术的使用.最近项目有点紧张,所以准备也不是特别充分.此篇就主要从 ...

  3. 跟我从零基础学习Unity3D开发--NGUI入门基础

    英雄联盟(撸啊撸) QQ飞车 魔兽世界等等相信大家都玩过游戏吧,玩过那UI知道是什么吧?UI可能说得有点专业的话那么游戏中那些属性面板例如: 现在对UI有一定认识了吧!回想一下您玩过的游戏就一定知道什 ...

  4. Visual Studio 2015 Pre Secondary Installer 在哪里

    安装vs2015 pre后,会自动打开Secondary Installer, 用于Cross Platform的移动开发框架,包括Cordova插件.若安装失败,启动程序位置: "D:\P ...

  5. 代码生成工具——Entity Framework Power Tools

    Entity Framework Power Tools是VS上的一个根据数据库生成Model的Code First映射工具.在VS里面右键即可看到.什么,没有? 别慌,可以单独下载的,见 https ...

  6. 作业一:android开发平台的演变以及Android Studio设置

    目录:     ①. 从Eclipse到Android Studio   ②. Android Studio的下载和安装   ③. 用户习惯设置以及快捷键   ④. SDK路径重新设置 ↓点此跳转到文 ...

  7. ECharts学习(1)--简单图表的绘制

    1.获取ECharts 官网 下载:http://echarts.baidu.com/download.html 2.在html页面中引入ECharts文件 <!DOCTYPE html> ...

  8. ASP.NET Identity 简介

    翻译自:http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity ,略有改动. 背景:A ...

  9. js获取域名

    <script language="javascript">//获取域名host = window.location.host;host2=document.domai ...

  10. 如何在Mac OS X上安装 Ruby运行环境

    对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 首先确定操 ...