android 测光模式,Android Camera1中的对焦与测光

Android Camera1开发系列连载:

Android Camera1详解

Android Camera1显示预览的四种方式

对焦模式

在使用特定的对焦模式的时候,必须确保相机支持该模式,相机支持的对焦模式可以通过Parameters#getFocusMode接口来获取:

672b0c4ca1ad6d2b6b66ffbd00d1dd1a.png

常用的对焦模式为:

// 连续自动对焦caf,预览场景变化时会自动去对焦Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEOCamera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE// 单次自动对焦af,下发一次请求则对焦一次Camera.Parameters.FOCUS_MODE_AUTO

对焦区域

当对焦模式为caf或者af时,可以指定对焦区域,如果未设置,则驱动程序将会自己选择焦点目标,看一张来自官网描述对焦坐标系的图:

97398d3a1e6e7f099bcfc3cd864e4ac4.png

如图所示,无论屏幕是横屏还是竖屏,预览视图的中心点坐标都是(0,0),左上角为(-1000,-1000),右下角为(1000,1000)

在计算屏幕坐标系中的UI点击坐标(x,y)到sensor对焦坐标系对焦区域focusRect的时候,还需要考虑预览的旋转角和前置镜像,计算过程大致如下:

5bdb85972f089463e786b5eaacb52c83.png

设置对焦区域的时候,需要先查询一下可设置对焦区域的最大个数:

// 返回0的时候表示不支持设置对焦区域,通常都是返回1// 当返回个数大于1的时候,可以设置对焦区域列表,// 每个对焦区域可以设置权重,权重范围为1~1000Parameters#getMaxNumFocusAreas

常见对焦模式的切换场景

单拍时,先对焦再拍照,拍照结束后切换到caf

连拍时,先对焦再拍照,连拍结束后切换到caf

触屏对焦TouchAF后,可以进行锁焦,预览场景变化时再转为caf;或者设置超时机制,3-5s后从af转为caf。不同手机的系统相机中选择的策略不同,主流策略大概就这两种

af切换到caf的时候,需要切换对焦模式和callback,从af切换到caf:

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);camera.setAutoFocusMoveCallback(cafCallback);

从caf切换到af:

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);camera.autoFocus(afCallback);

对焦画框逻辑

autoFocus流程:五种状态,三类UI

// 三类UI:正在对焦画白框,对焦成功画绿/黄框,失败画红框// 五种状态IDEL // focus is not activeFOCUSING // focus is in progressFOCUSING_SNAP_ON_FINISH // will take picture after focus finishSUCCESS  // focus finished and successFAIL     // focus finished and fails

autoFocusMoving流程:三种状态,两类UI

// 两类UI:moving的时候画白框,对焦成功画绿/黄框,超时直接清除UI// 三种状态MOVING_START // caf startMOVING_END  // caf endTIMEOUT     // time out

上面的显示策略对对焦状态的展示是很明晰的,不过现在的主流相机app都不会搞这么复杂,比如我手头的iPhone和小米手机的系统相机就没这么多颜色切换

测光

测光的坐标系和使用流程与对焦是一样的,就不具体描述了。

在TouchAF的时候,测光区域可以和对焦区域一样,也可以区域中心点相同,而框的大小不同,或者对焦区域和测光区域设置为不同区域,这种焦侧分离的功能一般都是在相机app中的专业模式中提供。考虑用户体验选择不同的策略即可

常见测光方式

7d7ea799038cc8ab73451272e354ac66.png

注:Redmi k30 5G版 系统相机专业模式

点测光:对画面中较小的区域(占整体面积的1.5% - 3%)进行测光,不考虑周边环境亮度,测光点所侦测的画面非常小,结果比较精确。这种测光模式适合用于场景光线反差大,或者主体在画面中所占比例较小的时候使用;

中央重点测光:测光重点放在画面的中心约75%的区域。在光线色差反差较大的情况下,这种测光模式比矩阵测光更容易控制效果;

平均测光:又叫矩阵测光,对画面中整体区域的光线强弱和色彩等情况进行侦测分析后,得到一个平均比较科学的测光值。这种测光模式适合在场景中光线、色彩等反差 不大的情况下使用;

以下面这张照片为例,在逆光场景下展示花瓣的纹路,为了让花瓣显得通透一点,可以采用点测光模式进行拍摄

ae61826a02a48e106a332e6b85152b33.png

测光方式的选择依赖于芯片提供支持或者相机Turing实现,在标准api中是没有直接提供相关接口的

该功能多见于系统相机专业模式,一般在第三方的相机类app启动相机预览后,都是默认的中央重点测光。第三方相机要实现测光方式的选择,除了依赖于厂商提供支持外,其实也可以自己研究一套AE权重表然后利用OpenGL来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会弹出一个对话框,“Dy…

android贝塞尔曲线多点,Canvas 贝塞尔曲线的多点波动

JavaScript语言:JaveScriptBabelCoffeeScript确定function Ball(x, y, radius) {this.x x;this.y y;this.radius radius;this.vx 20;this.vy 10;}Ball.prototype.draw function(ctx) {ctx.save();ctx.translate(this.x, this.y);ctx.fillStyle rgba(255, 255…

html5做一个展示页面,基于HTML5的WebGL实现json和echarts图表展现在同一个界面

突然有个想法,如果能把一些用到不同的知识点放到同一个界面上,并且放到一个盒子里,这样我如果要看什么东西就可以很直接显示出来,而且这个盒子一定要能打开。我用HT实现了我的想法,代码一百多行,这么少的代…

android 空白占位符,android textview空格占位符以及一些其他占位符汇总

普通的英文半角空格 no-break space (普通的英文半角空格但不换行) 中文全角空格 (一个中文宽度)   en空格 (半个中文宽度)   em空格 (一个中文宽度) 四分之一em空格 (四分之一中文宽度)相比平时的空格( ),nbsp拥有不间断(non-breaking)特性。即连续的nbs…

html图片平移,CSS3 按钮悬停时背景图片平移入场

JavaScript语言:JaveScriptBabelCoffeeScript确定$(".thumb-next").on(mouseleave, function() {$(".layout-p").text("Hover above, please.");});$(".thumb-next").on(mouseenter, function() {$(".layout-p")…

Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)

1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools; 3.new 一个Connectio Pools 4.对General Settings属性填写; 5.填写Datasource Classname:com.mysql.jdbc.jdbc2.optiona…

商品详情页html,天天生鲜商品详情页HTML+css

body{font-family: Microsoft YaHei;color:#666;font-size:12px;}/*顶部条状态*/.header_con{height:29px;background-color: #f7f7f7;border-bottom:1px solid #ddd;}.header{width:1200px;height:29px;margin:0 auto;1}.welcome{font:12px/29px Microsoft YaHei UI;float: le…

Netbeans不能正常启动glassfish或者部署失败不能运行的问题

错误信息:D:\临时文件\netbeans\WebTest\build\web中部署GlassFish Server 4, deploy, Connection refused: connect, falseD:\临时文件\netbeans\WebTest\nbproject\build-impl.xml:1048: 尚未部署该模块。有关详细信息, 请查看服务器日志。构建失败 (总时间: 7 秒…

js实现图片加载特效(从左到右,百叶窗,从中间到两边)

/*  网上百度的&#xff0c;感觉”从中间到两边“的效果写的不是很好&#xff0c;改了一下&#xff0c;感觉可以了&#xff01;*/<html><head><title></title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8&qu…

给html动态添加css样式,JavaScript动态添加css样式和script标签

[动态添加css样式]window.οnlοadfunction(){var headdocument.getElementsByTagName(head)[0];     //获取到head元素var linkdocument.createElement(link);             //创建link元素节点&#xff0c;也就是link标签link.rel"stylesheet";  …

java中Cookie中文字符乱码问题

如果Cookie中的Value 中有中文字符出现&#xff0c;在加入Cookie的时候&#xff0c;会出现下面的错误&#xff1a;  java.lang.IllegalArgumentException: Control character in cookie value or attribute.当我们设定Cookie的Value的值得时候&#xff1a;  cookie.setValue…

湖北省仙桃市2021年高考成绩查询,2021年4月湖北仙桃市自考成绩查询时间和有效期是多久?...

2021年4月湖北仙桃市自考成绩查询时间和有效期是多久?根据《2021年4月湖北自考成绩公布及复查事项通知》知悉&#xff0c;2021年4月湖北仙桃市自考成绩查询时间为5月12日起&#xff0c;官方成绩查询入口已开通。一、2021年4月湖北仙桃市自考成绩查询入口及流程2021年4月湖北仙…

html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧

这是一个很有意思的特效&#xff0c;模拟摄像机拍摄电视屏幕画面时出现点状颗粒的效果。颗粒的大小通过变换矩阵实现&#xff0c;可以任意调节&#xff0c;有兴趣研究的朋友可以尝试更多的效果&#xff0c;代码没有经过优化&#xff0c;只是一个粗糙的Demo&#xff0c;大家可以…

java中得到classpath和当前类的绝对路径的一些方法(路径中的%20进行替换空格)...

原网址&#xff1a;http://blog.csdn.net/shendl/article/details/1427475&#xff08;注意&#xff1a;利用下面方式得到路径&#xff0c;如果路径中有空格字符&#xff0c; 那么会有"%20"进行替换&#xff0c; 所以得到之后再将"%20"替换成空格&#xff…

计算机的好处英语,电脑的好处英语演讲稿

电脑的好处英语演讲稿The computer plays the vital role in ours life, the computer may help us to handle very many matters: The data computation, the study entertainment, the office automation, the control production, draws money automatically, long-distance…

jsp实现简单的分页

效果如下&#xff1a;<%-- Document : pageCreated on : 2014-11-18, 8:55:02Author : HJZ --%><%page contentType"text/html" pageEncoding"UTF-8"%> <!DOCTYPE html> <html><head><script language "javas…

台式计算机有什么配置,目前台式电脑的主流配置有哪些?

主流配置的话&#xff0c;目前CPU基本都上八代8100/8400/8700主板b360m板子比较火&#xff0c;不超频很合适内存条的话360只支持2666所以一般都是上8g2400的条子硬盘的话现在固态降价了&#xff0c;且主板支持nvme 256g性价比不错 看需求&#xff0b;机械显卡的话1060系列甜品级…

javaBean和jsp应用

原网页&#xff1a;http://www.douban.com/note/102320977/ JavaBean是一种可复用&#xff0c;跨平台的组件。共有两种JavaBean&#xff1a;一种无用户界面&#xff0c;这种一般用于处理数据运算&#xff0c;操作数据库等。另一种是有用户界面(User Interface)的JavaBean. 在Js…

计算机重应用,装了一大堆应用,iPhone6会变重吗?

你有没有想过&#xff0c;iPhone买来以后装入数十甚至上百个应用&#xff0c;手机是否在重量上发生了变化。广泛接受马克思主义教育的人类表示&#xff1a;别闹了&#xff0c;数据和信息属于意识&#xff0c;怎么能有重量(或者应该叫质量)。更何况这个所谓的“信息爆炸”时代每…

SQLExecption:Operation not allowed after ResultSet closed解决办法

原网址&#xff1a;http://blog.csdn.net/sku0923/article/details/1722370 一个stmt多个rs进行操作引起的ResultSet已经关闭错误 一个stmt多个rs进行操作. 那么从stmt得到的rs1,必须马上操作此rs1后,才能去得到另外的rs2,再对rs2操作. 不能互相交替使用,会引起rs已经关闭错误.…