objccn-相机工作原理
感觉这个世界上最幸福的事情就是工作和兴趣结合到一起了。这一阵子总是在听再看有关摄影的种种,今天在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-相机工作原理的更多相关文章
- 2D UI和3D UI的工作原理
2D UI的工作原理 UI控件的位置在UI Root 的红框(视窗)上,也就是UI控件的z轴,相机的z轴,UI Root的z轴都是0,因为2D UI都是纯粹的2D图片按层次显示,不会不出现三维立体效果 ...
- camera理论基础和工作原理
写在前面的话,本文是因为工作中需要编写摄像头程序,因为之前没有做过这类产品,所以网上搜索的资料,先整理如下,主要参考文章如下,如果有侵权,请联系我:另外,转载请注明出处.本文不一定全部正确,如果发现错 ...
- 图解WebGL&Three.js工作原理
“哥,你又来啦?”“是啊,我随便逛逛.”“别介啊……给我20分钟,成不?”“5分钟吧,我很忙的.”“不行,20分钟,不然我真很难跟你讲清楚.”“好吧……”“行,那进来吧,咱好好聊聊” 一.我们讲什么? ...
- WebGL&Three.js工作原理
一.我们讲什么? 我们讲两个东西:1.WebGL背后的工作原理是什么?2.以Three.js为例,讲述框架在背后扮演什么样的角色? 二.我们为什么要了解原理? 我们假定你对WebGL已经有一定了解,或 ...
- camera理论基础和工作原理【转】
转自:http://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html 写在前面的话,本文是因为工作中需要编写摄像头程序,因 ...
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍
转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...
- 菜鸟学Struts2——Struts工作原理
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
- HashMap的工作原理
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
随机推荐
- 查看struct或class的内存布局
适用于VC编译器(Visual Studio) 附加选项: /d1 reportSingleClassLayout[foo] 例如CItem(注意后面没有空格) /d1 reportSingleCla ...
- web响应式图片设计实现
.header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...
- cookie学习指南
一.什么是cookie cookie也叫HTTP cookie,最初是用来客户端和服务器端进行会话用的,由于HTTP是一种无状态的协议,为了维持用户和跟踪用户信息,所以引入了cookie和sessio ...
- 使用属性动画 — Property Animation
属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...
- 利用Microsoft.Practices.Unity的拦截技术,实现.NET中的AOP
1.记住这个单词的意思:Interception(拦截) 2.首先说一下原理和背景 原理:所谓的AOP就是面向切面编程,这里不多说,百度搜索. 目的:个人认为是为了解耦,部分代码跟业务代码分离,业务代 ...
- Asp.Net MVC<八>:View的呈现
ActionResult 原则上任何类型的响应都可以利用当前的HttpResponse来完成.但是MVC中我们一般将针对请求的响应实现在一个ActionResult对象中. public abstra ...
- noip2016十连测round2
A: Divisors 题意:给定 m 个不同的正整数 a 1 ,a 2 ,...,a m ,请对 0 到 m 每一个 k 计算,在区间 [1,n] 里有多少正整数 是 a 中恰好 k 个数的约数. ...
- 30秒懂SQL中的join(2幅图+30秒)
废话不多说,直接上图秒懂. t1表的结构与数据如下: t2表的结构与数据如下: inner join select * from t1 inner join t2 on t1.id = t2.id; ...
- PHP -- Perl风格正则表达式
1.正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*.+ 和?等),以及模式修正符三个部分组成.2.在于Perl兼容的正则表达式函数中使用模式时一定要给 ...
- hdu5468 Puzzled Elena
hdu5468 Puzzled Elena 题意 求一棵子树内与它互质的点个数 解法 容斥 我们先求出与它不互质的数的个数,再用总数减去就好. #include <cstdio> #inc ...