android - Camera2默认控制场景模式为CONTROL_SCENE_MODE_FACE_PRIORITY
问题描述
在设置任何参数之前,CaptureRequest.Builder
我检查了默认控制场景模式是否未禁用
Timber.d("captureRequestBuilder sceneMode ${get(CaptureRequest.CONTROL_SCENE_MODE)} == ${CameraMetadata.CONTROL_SCENE_MODE_DISABLED}")
Timber.d("captureRequestBuilder mode ${get(CaptureRequest.CONTROL_MODE)} == ${CameraMetadata.CONTROL_MODE_AUTO}")
captureRequestBuilder 场景模式 1 == 0
captureRequestBuilder 模式 1 == 1
CONTROL_SCENE_MODE_DISABLED = 0;
CONTROL_SCENE_MODE_FACE_PRIORITY = 1;
为什么CONTROL_SCENE_MODE_FACE_PRIORITY
Camera2默认控制场景模式?
如果我将 Camera2 用于仪表板摄像头应用程序(汽车录像机),我应该设置什么?绝对不应该是路上的人脸识别……
我认为默认场景将被禁用,直到开发人员明确设置它......
所有可能的值(当然,设备可能不完全支持这些场景模式):
解决方案
在大多数用例中,如果手机使用 FACE_PRIORITY 作为默认设置,最好将其保留为 FACE_PRIORITY。
该模式允许相机测光使人脸看起来尽可能好——它不进行人脸识别,只是进行人脸检测。因此,它会找到有面孔的位置,并尝试确保这些区域光线充足且聚焦。
如果你愿意,你可以通过完全关闭场景模式来关闭它,方法是将CONTROL_MODE设置为AUTO而不是USE_SCENE_MODE。当设置为 AUTO 时,将忽略 CONTROL_SCENE_MODE 的值。
推荐阅读
- android - 自动合并库中的元数据资源
- reactjs - 上传 React 后删除 FilePond 文件
- android - 如何使用适用于 Java 的 Google Play Developer API 客户端库将扩展文件上传到 Draft Apk?
- java - Java api 返回可选
- opencv - 是否可以检测不同类型的梯形
- powershell - Active Directory Powershell 在脚本内部的访问权限不足,但能够从命令行运行命令
- amazon-web-services - 计算应更新 Lambda 层的时间
- react-native - React Native 中的六边形图像
- bash - 在每个组之前从第一列添加唯一值
- assembly - MIPS 问题。如何摆脱某些字符