标签: autoexposurecompensation

如何在拍摄照片时通过Java获取Android手机摄像头的曝光补偿等级?

如何在拍摄照片时从Android手机获取AutoExposureCompensation等级(亮度)?

我可以拍张照.我可以访问摄像机的参数,包括曝光补偿(当我检查时总是为零),但我需要在拍摄照片时获得AE补偿等级,而不是之前和之后.

背景:我希望在特定时间拍摄的所有照片都使用相同的AE补偿等级拍摄照片.我不希望Android相机通常会对曝光级别或白平衡进行数百次调整.我想获得一次,并为所有后续照片设置相同的设置.

我已经尝试过使用"意图"来拍照,OpenCV,碎片等.我似乎无法使用其中任何一种获得AE补偿设置.这是我尝试过的最新代码,从JavaCameraView的扩展版本开始:

import org.opencv.android.JavaCameraView;
import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.Size;
import android.util.AttributeSet;
import android.util.Log;
@SuppressWarnings("deprecation")
public class NewJavaCameraView extends JavaCameraView implements PictureCallback {

public int getExposureCompensation(){
    return mCamera.getParameters().getExposureCompensation();
}
 @SuppressWarnings("deprecation")
 public void takePicture(final String fileName) {
    Log.i(TAG, "Taking picture");
    this.mPictureFileName = fileName;

    Camera.Parameters params = mCamera.getParameters();
    int exposureComp = params.getExposureCompensation();
    mCamera.setPreviewCallback(null);

    // PictureCallback is implemented by the current class
    int otherexposureComp =this.getExposureCompensation();
    mCamera.takePicture(null, null, this);
}

 @SuppressWarnings("deprecation")
 @Override
 public void onPictureTaken(byte[] data, Camera camera) …
Run Code Online (Sandbox Code Playgroud)

java android opencv javacameraview autoexposurecompensation

11
推荐指数
1
解决办法
2157
查看次数

Android CameraX - 手动更改曝光补偿?

我在我的项目中使用 CameraX。我已经创建了预览用例并捕获用例。

final CameraSelector cameraSelector = new CameraSelector.Builder().requireLensFacing(lensFacing).build();

        previewBuilder = new Preview.Builder()
            .setTargetResolution(targetOutputSize)
            .setTargetRotation(rotation);

        preview = previewBuilder.build();

        final ImageCapture.Builder imageCaptureBuilder = new ImageCapture.Builder()
            .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
            .setTargetResolution(targetOutputSize)
            .setTargetRotation(rotation);

        imageCapture = imageCaptureBuilder.build();
Run Code Online (Sandbox Code Playgroud)

一切正常。现在,我需要添加功能来手动更改曝光补偿,但我在官方文档或其他任何地方找不到如何执行此操作的任何参考。是否可以使用 CameraX,或者我需要切换到 Camera2 API?

请,欢迎任何帮助。

java android autoexposurecompensation android-camerax

3
推荐指数
1
解决办法
2753
查看次数