最近在做人脸识别项目。在抓取人脸时,发现了很多问题。其中旋转角度和光线问题最令人抓狂。

Camera拍摄照片可能存在0度/90度/180度/270度的(右侧)旋转,不同设备不同。例如,小米3w,0度;小米8,270度。所以需要获取照片后不能立即使用,需要根据旋转角度,对照片进行处理,以方便人脸位置的获取。关于如何实现,是另一话题,改天再论。

光线问题,其实是非常感官的因素。同样的处理代码,同样的画面,光线是否充足,影响抓取结果。

尝试了三个方案,仅有最终的光线传感器奏效。现将成功和不成功的方案都记录下来。

(1)方案一(失败):Camera接口

起初,对于Camer接口一通查找,发现曝光补偿和白平衡带有auto设置,调试后发现,不起作用。

(2)方案二(失败):屏幕亮度

后将焦点放在屏幕的亮度调节上,通过设置SCREEN_BRIGHTNESS_MODE_AUTOMATIC,达到自动调节屏幕亮度的效果。调试后,仍无效。测试代码,如下

    public static boolean autoBrightness(Context activity, boolean flag) {int value = 0;if (flag) {value = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;} else {value = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;}return Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,value);}

(3)方案三(成功):光线传感器

最后才发现,其实真正起作用的是光线传感器。

下方为编写的适配器demo

package com.breakloop.common;import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.view.Window;
import android.view.WindowManager;import static android.content.Context.SENSOR_SERVICE;public class BrightnessAdapter implements SensorEventListener {private Context mContext;private SensorManager sensorManager;private Window mWindow;public BrightnessAdapter(Context fContext, Window fWindow) {this.mContext = fContext;this.mWindow=fWindow;this.sensorManager=(SensorManager)mContext.getSystemService(SENSOR_SERVICE);}public void regist(){if(sensorManager!=null){sensorManager.registerListener(this,sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_GAME);}}public void unRegist(){if(sensorManager!=null){sensorManager.unregisterListener(this,sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT));}}@Overridepublic void onSensorChanged(SensorEvent event) {float[] values = event.values;//传感器类型int sensorType = event.sensor.getType();switch (sensorType){case Sensor.TYPE_LIGHT://获取窗口管理属性WindowManager.LayoutParams lp =mWindow.getAttributes();//计算屏幕亮度lp.screenBrightness = Float.valueOf(values[0])*(1f/255f);//参数设置mWindow.setAttributes(lp);break;default:break;}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}
}

调用时,仅需要创建对象,并在Activity中适时registor和unregistor即可。

Android亮度自动调节相关推荐

  1. java手机太亮,Android 亮度调节

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...

  2. android设置自动亮度,Android亮度调节的几种实现方法

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...

  3. Android 亮度调节

    专注Android领域开发.仰望星空,同时需要脚踏实地. --好记性不如烂博客 Android 亮度调节 最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其 ...

  4. 诺基亚Lumia 920更新后出现屏幕亮度自动调节问题?

    在前些天,美国及加拿大的诺基亚Lumia 920 (图集, 点评, 教程)用户陆续收到推送WP8"Portico"更新,更新的系统优化了消息功能,增加了短信回复来电.改进IE浏览器 ...

  5. Android 亮度调节的方法

    整体上看,Android亮度调节分为三个层次,分别是:Android系统亮度调节.Android App亮度调节和Android当前屏幕(Window)亮度调节. 1.Android系统亮度调节 An ...

  6. 屏幕亮度自动调节的实现

    以下文章转载自:http://www.miui.com/thread-27347-1-1.html 当在论坛上看到很多机友反映G7的自动亮度太暗,石头的自动亮度太亮的时候,MIUI小组准备做自动亮度的 ...

  7. android 亮度 对比度,Android图像锐化,饱和度,色调,亮度和对比度

    是的,android有一些操作颜色的工具,比别人更容易.做特别要求所有图像的一般空间的唯一方法是修改单个像素.还有其他快速和肮脏的技巧,速度要快得多,但不够精确(ColorFilter). 色相换: ...

  8. java rgb 黑色_Java实现图片亮度自动调节(RGB格式)

    最关键的获取亮度公式: float luminance = (red * 0.2126f + green * 0.7152f + blue * 0.0722f) / 255; private Buff ...

  9. 华为亮度自动调节没了_一加8T不止有8192级自动亮度调节 刘作虎在线种草

    9月24日,一加手机官方正式放出了小罗伯特唐尼为一加8T拍摄的宣传片,并且邀请加油和小唐尼一起"飙"起来,虽然视频中一加8T并未亮相,不过单单一个"飙"字就已经 ...

  10. 苹果亮度自动调节怎么关闭_一加8T升级到8192级自动亮度调节:安卓中最好

    一加8T将于10月15日在北京发布.今天一加创始人兼首席执行官刘作虎为一加8T预热.刘作虎表示,上半年一加8系列屏幕的4096级自动亮度调节备受好评,安卓中最好.这次一加8T上升级到了8192级,并且 ...

最新文章

  1. 数据派研究组招募 | 寻找最志同道合的你!
  2. XP系统,无法创建新的网络连接
  3. mysql拉荐_荐 一步一步教你MySQL主从复制读写分离
  4. 关于《在Windows与.NET平台上的持续交付实践》的问答录
  5. 开发之路(设计模式二:观察者模式)
  6. Android之封装倒计时页面
  7. 保险的现金价值是什么意思?
  8. thrift java first demo
  9. 阶段3 1.Mybatis_03.自定义Mybatis框架_1.自定义Mybatis的分析-执行查询所有分析
  10. Genius ACM(倍增+归并排序)
  11. c语言色环电阻计算器源代码,色环电阻在线计算器
  12. 微软收购雅虎要中国政府审批?
  13. 学大数据一定要会Java开发吗?
  14. 通达 php解密,全网首发 | 通达OA多枚0day漏洞分享
  15. NVIDIA CUDA初级教程(P2-P3)CPU体系架构概述、并行程序设计概述
  16. 北航计算机学院硕士培养方案,北航硕士研究生培养方案.doc
  17. Mysql跨库跨表复制数据
  18. Win系统 - 色域、IPS、TN傻傻分不清楚?
  19. C++实现单源最短路算法
  20. 案例篇:Python天气播报系统,这才是未雨绸缪

热门文章

  1. mysql 汉字笔画排序规则_SQL Server与MySQL中排序规则与字符集相关知识的一点总结...
  2. chrome突然无法复制粘贴了
  3. word快捷键复制粘贴无法使用
  4. html submit修改名称,HTML Input Submit name用法及代码示例
  5. php html ubb,php UBB 解析实现代码
  6. 分享几个免费的人工智能类API接口
  7. 数据埋点日志awk脚本快速入库
  8. BLC(Black Level Correction)——黑电平校正
  9. Docker容器下安装ubantu,其中 command not found 的问题(已经解决)
  10. 无限法则裸连本地服务器错误,无限法则D3Dinitfailed报错问题解决办法