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基础知识学习的汇总.然后形成体 ...
随机推荐
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...
- 基于FPGA的飞机的小游戏
基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路 ...
- SQL 常用操作
今天网龙笔试遇到了几个SQL题,现在顺便就总结一下常用的SQL操作. 内连接:只将符合条件的行显示出来 SELECT s.name,m.mark FROM student s,mark m WHERE ...
- iOS开发小技巧--相机相册的正确打开方式
iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...
- JAVA 技术手册 卷1 第十四章『多线程』 读书摘要
什么是线程 进程受CPU时间片的轮转调度,进而予人多任务并发的感觉. 线程在更低层次上扩展多任务概念,一个进程通常包含多个线程. 进程各自数据独立,而线程共享数据. 数据独立使进程相互通信变得繁难,共 ...
- jsp中iframe填充装个页面
首先要引入这个css,由于我之前没有引入这个,导致iframe的高度一只是默认高度,没有改变 <style type="text/css"> body, html { ...
- 分析移动端APP的网络请求抓包
为了方便,本文以 iOS 系统来进行演示. 使用代理 移动操作系统中都有可以设定系统代理的设置,比如在 iOS 中可以通过 Settings->WLAN 看到很多 Networks,通过点击它们 ...
- BZOJ1598: [Usaco2008 Mar]牛跑步
传送门 K短路,普遍的算法是采用AStar求解,先建立反向边跑一遍dij,或者spfa什么的.跑出反向边的距离就可以看为估价函数中的$h()$.设$dist$为当前已经走过的距离,那么$f(node) ...
- Android内存优化-内存泄漏的几个场景以及解决方式
转自:http://blog.csdn.net/a910626/article/details/50849760 一.什么是内存泄漏 在Java程序中,如果一个对象没有利用价值了,正常情况下gc是会对 ...
- 我的SqlHelper类!
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...