安卓相机2如何在AE_MODE自动设置AE_MODE_OFF后设置ISO感光度值



我正在使用Camera2 API来修改相机快门速度。

所以我必须CONTROL_AE_MODE设置为AE_MODE_OFF.

然后自动曝光算法不会覆盖SENSOR_SENSITIVITY值。

但是快门速度改变后,感光度值变得不合适。预览变得太暗或太白。

我的问题是:AE_MODE OFF时如何自动更改SENSOR_SENSITIVITY(ISO值)。

我知道在iOS相机中,它们exposureTargetOffset价值来决定iso值是否合适。

但我还没有在安卓相机2 api中找到。

任何建议将不胜感激。

相机2目前没有半自动模式;如果关闭自动曝光,则必须手动控制曝光和感光度。

您可以将自动曝光保持打开状态,并使用曝光补偿来调暗/增亮图像。

AE模式关闭时,SENSOR_EXPOSURE_TIMESENSOR_SENSITIVITY都可以更改。这些设置的范围可能会有所不同,可以分别由 SENSOR_INFO_EXPOSURE_TIME_RANGESENSOR_INFO_SENSITIVITY_RANGE 请求。请注意,并非所有手机都这样做!

您可以查看"打开相机"项目作为更改这些值的一个很好的例子。

如果其他人想要答案 如果您在CameraCaptureSession.CaptureCallback.onCaptureCompleted中使用 camera2 API,则可以获得当前的自动曝光时间和 iso 感光度。每个预览帧都会调用它。因此,您可以在开启自动曝光的情况下运行预览,每次获得预览帧保存曝光乘以ISO

mExposureTimesISO=(double)(result.get(TotalCaptureResult.SENSOR_SENSITIVITY)*result.get(TotalCaptureResult.SENSOR_EXPOSURE_TIME));

然后在您的拍照通话中将其设置为手动曝光,然后将此值除以所需的ISO,例如,在我的ISO 100锁定图像捕获例程中,它如下所示:

double exposureAtISO100=mExposureTimesISO/100.0;            
CaptureRequest.Builder build=mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
build.set(CaptureRequest.CONTROL_AE_MODE,CaptureRequest.CONTROL_AE_MODE_OFF);
build.set(CaptureRequest.SENSOR_SENSITIVITY,100);
build.set(CaptureRequest.SENSOR_EXPOSURE_TIME,(long)exposureAtISO100);

相关内容

  • 没有找到相关文章

最新更新