Android 测光梳理

什么是测光

我们所看到的,不是物体本身,而且这个物体上反射出来的光,我们想要看东西,我们的眼睛就需要接受这个光,同理,相机想要拍出照片,也需要接收这个光。
人眼是可以自动调节进光量的,但是相机是做不到的,所以,我们需要控制这个光的进入,光进入多了,照片会过曝,光进入少了,照片会欠曝,这个时候,我们就需要测光了。

测光就是测光线的明暗,使相机实现正确曝光的过程。也就是组合曝光参数:光圈,ISO,快门

测光的原理

相机在测光过程中,会将拍摄的所有物体都默认为反射率18%的灰色,专业术语叫“中级灰”,并以此作为测光的基准,曝光的目的是为了正确还原这种灰色。因为18%灰与人皮肤平均反射光的色调一样。
但是18%灰也不是准确的,对于纯白,纯黑,会导致画面的影调和色彩的失真。

测光方式

  • 评价测光,是最常用的一个测光模式,也叫多区域测光。对画面的整体亮度进行平均测定,对逆光主体也有效。
  • 局部测光,是对画面的中央部分进行测光,相机的测光元件会对画面中心约占画面12%的范围进行测光,并最终进行平均加权而得出测光数据。
  • 点测光,比局部测光更为精确,测光元件仅测量画面最中心1%-3%的极小范围区域进行测光。
  • 中央重点平均测光:将画面中央约60%的区域作为测光的重点,同时并兼顾画面的边缘。与评价测光的区别在于相机会根据拍摄者的需要强调对某个区域进行重点测光,所获得的图像会很少有某个区域欠曝或过曝的问题出现,对于一些重点主体部位,图像也能很清晰地进行反映。

Android中的测光

CONTROL_AE_ANTIBANDING_MODE

用于抗闪烁的。
对于某些类型的照明装置,例如一些荧光灯,以电源频率的速度闪烁,如果曝光时间不正确,则可能最终的成像中,闪烁成了图像上的一组亮带。

它的值有:

  • OFF
  • 50HZ
  • 60HZ
  • AUTO

可使用CameraCharacteristics#CONTROL_AE_AVAILABLE_ANTIBANDING_MODES查询支持的值。

CONTROL_AE_EXPOSURE_COMPENSATION

设置曝光补偿,可调节图像亮度。
它是以step进行调整的,step的大小通过CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP进行查询,曝光补偿范围通过CameraCharacteristics#CONTROL_AE_COMPENSATION_RANGE进行查询。
例如,如果曝光值(EV)步长为0.333,则“6”表示+2 EV的曝光补偿; -3意味着-1 EV的曝光补偿。
一个EV表示图像亮度加倍。

只有在CaptureRequest#CONTROL_AE_MODE != OFF的情况下才有效。或者在CaptureRequest#CONTROL_AE_LOCK == true时也有效。

在曝光补偿改变的情况下,相机设备可能需要几帧才能到达新请求的曝光目标。在此期间,CaptureResult#CONTROL_AE_STATE字段将处于SEARCHING状态。 达到新的曝光目标后,CaptureResult#CONTROL_AE_STATE将从SEARCHING更改为CONVERGED,LOCKED(如果启用了AE锁定)或FLASH_REQUIRED(如果场景太暗而无法进行静态捕捉)。

CONTROL_AE_REGION

设置自动曝光测量区域。
权重必须在[0,1000]以内,而且代表的是这个区域中每个像素的权重。在 metering result 中,相同权重的 更大的mertring aream 比 较小的区域有更多影响。metering 区域可以重叠,而且相机设备会叠加重叠区域的权重。
权重是相对于其他计量区域的权重,因此如果仅使用一个区域,则所有非零权重将具有相同的效果。 忽略0权重的区域。
这个权重是设置在MeteringRectangle中的。

手动曝光设置:

只有在CaptureRequest#CONTROL_AE_MODE为OFF并且支持时才可以使用。

LENS_APERTURE:光圈

支持的光圈范围可使用CameraCharacteristics#LENS_INFO_AVAILABLE_APERTURES查询。
在光圈正在改变时,LENS_STATE会被设置为MOVING。

SENSOR_EXPOSURE_TIME:快门/曝光时间

只有在CaptureRequest#CONTROL_AE_MODE or CaptureRequest#CONTROL_MODE为OFF时才有效。
可以通过CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE进行范围查询。

SENSOR_SENSITIVITY:ISO/灵敏度

可通过 CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE进行范围查询。
只有在CaptureRequest#CONTROL_AE_MODE or CaptureRequest#CONTROL_MODE为OFF时才有效。
SENSOR_FRAME_DURATION:
从帧曝光开始到下一帧曝光开始的持续时间。

项目中:

对于设置不同的曝光补偿:4,2,0,-2,-4
对于华为nova2s,step为1/2,范围在-4~4

设置曝光补偿为2,AE_REGION建设一半(左图为曝光补偿为2,AE_REGION = FOCUS_REGION,右图为不设置曝光补偿)

Android 测光梳理相关推荐

  1. Android 知识点梳理,较完整

    说明:本篇博客只是一个知识整理,因为网上对于Android的知识介绍足够多,因此我不再写相关文章(主要是因为我写的不如人家好),所以所有文章均来自网络,不贴原文章,只提供连接,因此本文旨在减少你对相关 ...

  2. Android 知识梳理目录 - 好吧,这是一个很“干“的标题

    Android 数据存储知识梳理(1) - SQLiteOpenHelper 源码解析 Android 数据存储知识梳理(2) - Android存储目录 Android 数据存储知识梳理(3) - ...

  3. Android 知识梳理目录 - 好吧,这是一个很“干,安卓系列学习进阶视频

    ============== 2.1 Activity 知识梳理 Activity 知识梳理(1) - Activity 生命周期 Activity 知识梳理(2) - Activity 栈 Acti ...

  4. Android 知识点梳理

    [+] 说明:本篇博客只是一个知识整理,因为网上对于Android的知识介绍足够多,因此我不再写相关文章(主要是因为我写的不如人家好),所以所有文章均来自网络,不贴原文章,只提供连接,因此本文旨在减少 ...

  5. android测光代码,常用测光表软件:Android篇

    <常用测光表软件:Android篇>由会员分享,可在线阅读,更多相关<常用测光表软件:Android篇(5页珍藏版)>请在人人文库网上搜索. 1.常用测光表软件:Android ...

  6. Android 知识梳理目录 - 好吧,这是一个很“干,android物联网开发从入门到实战

    3.1 Retrofit 知识梳理 Retrofit 知识梳理(1) - 流程分析 Retrofit 知识梳理(2) - Retrofit 动态代理内部实现 3.2 OkHttp 知识梳理 OkHtt ...

  7. Android Gatekeeper梳理

    文章目录 引言 一.gatekeeper的概念 二.gatekeeper框架的变化 GateKeeper 身份验证的高级数据流 代码结构图(复用) 三.gatekeeper的软件框图 四.Enroll ...

  8. android okhttp 源码解析,OkHttp 知识梳理(1) - OkHttp 源码解析之入门

    OkHttp 知识梳理系列文章 一.简介 OkHttp无疑是目前使用的最多的网络框架,现在最火的Retrofit也就是基于OkHttp来实现的,和以前一样,我们将从最简单的例子开始,一步步剖析OkHt ...

  9. android 求数组最大值,面试算法知识梳理(7) - 数组第四部分

    面试算法代码知识梳理系列 一.概要 本文介绍了有关数组的算法第四部分的Java代码实现,所有代码均可通过 在线编译器 直接运行,算法目录: 求数组当中的最长递增子序列(求数组当中的最长递减子序列) 区 ...

最新文章

  1. Primary VLAN
  2. C# 利用DotRas 操作adsl
  3. sqlserver垮库查询_Oracle和SQLServer中实现跨库查询
  4. 我从参加#PerfMatters会议中学到的东西
  5. 《重构-改善既有代码的设计》-第1例:租赁影片(2)
  6. html5 canvas裁剪图片,html5-canvas 使用画布裁剪图像
  7. 微服务升级_SpringCloud Alibaba工作笔记0017---Nacos之服务消费者注册和负载
  8. Integrating ASP.NET AJAX with SharePoint
  9. 教你怎么从Windows10彻底删除Flash
  10. 05、ADS使用记录之集总参数匹配
  11. 聊聊泰国的工作和生活
  12. 《Web API 的设计与开发》读书笔记
  13. bzoj-1227 虔诚的墓主人
  14. scratch接球游戏 电子学会图形化编程scratch等级考试三级真题和答案解析2022年3月
  15. 初识Mongdb之数据查询篇(二)
  16. cloudsim资料收集
  17. RVIZ 的菜单背景变成黑色
  18. 使用Nexus搭建Maven私服、私服下载与上传
  19. 运放单电源供电和双电源供电
  20. vue基础指令的学习

热门文章

  1. Eclipse 彻底卸载
  2. 图解金融标准:《金融行业信息系统信息安全等级保护实施指引》
  3. a标签的使用--发送电子邮件(mailto)
  4. 实习日记——Day50
  5. 英集芯TWS充电仓SOC系列
  6. linux 必备基础知识 (week2)
  7. js时间戳转时间方法
  8. 什么是-Xmx和-Xms?
  9. Input标签实现回车换行
  10. php tp5 爬取淘宝/天猫店铺的信息