Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 调用takePicture()后自动曝光锁重置_Android_Camera - Fatal编程技术网

Android 调用takePicture()后自动曝光锁重置

Android 调用takePicture()后自动曝光锁重置,android,camera,Android,Camera,Android Camera.Parameters类中的曝光锁定有问题。我可以在拍照前锁定曝光,但在调用camera.takePicture(shutterCallback、rawCallback、jpegCallback)时,曝光会再次开始自动调整 另外,getAutoExposureLock()仍然返回true,即使预览和最终保存的图像显示调整后的曝光 Android文档称,拍照不会改变曝光锁定: 我错过了什么?我也有同样的问题。这是因为camera.takePicture(shutterC

Android Camera.Parameters类中的曝光锁定有问题。我可以在拍照前锁定曝光,但在调用
camera.takePicture(shutterCallback、rawCallback、jpegCallback)
时,曝光会再次开始自动调整

另外,
getAutoExposureLock()
仍然返回
true
,即使预览和最终保存的图像显示调整后的曝光

Android文档称,拍照不会改变曝光锁定:


我错过了什么?

我也有同样的问题。这是因为
camera.takePicture(shutterCallback、rawCallback、jpegCallback)
停止预览;您必须调用
camera.startPreview()
继续预览。

我自己也遇到过这个问题,我假设这是一个API错误,因为它对我和你的工作原理相同。除非你在这段时间内把它修好了?让我知道

我成功锁定了Galaxy S4的曝光补偿

Camera.Parameters parameters = mCamera.getParameters();
parameters.setAutoExposureLock(true);
mCamera.setParameters(parameters);
mCamera.startPreview();
然后在每次
takePicture
回调中,我基本上将锁重置为true

Camera.Parameters parameters = mCamera.getParameters();
parameters.setAutoExposureLock(true);
mCamera.setParameters(parameters);
这就成功了。所有拍摄的图像几乎都一样明亮。更改曝光补偿无效,但更改ISO时,曝光时间会自动调整


我将对此进行深入研究,并相应地更新这篇文章。

takePicture
回调中将锁重置为true对我的三星Galaxy Note 3不起作用。它使情况稍微好一点,但仍然会生成亮度完全不同的图像。这些JEPG内的Exif确认
暴露时间从1/120秒到1/400秒不等

我还注意到一些JPEG具有相似的
曝光时间
(1/120秒),但不同的
亮度
值保存在exif中。所以,我猜测图像后处理器是游戏的破坏者

我通过
native\u getParameters
转储了所有相机参数,找到了图像校正参数,并将它们全部设置为
5
。这些参数是:

set("min-brightness", 5);
set("max-brightness", 5);

set("contrast", 5);
set("min-contrast", 5);
set("max-contrast", 5);

set("max-saturation", 5);
set("min-saturation", 5);
set("saturation", 5);

现在产量好多了。图像几乎同样明亮。所有500张测试图像的曝光时间均
为1/120±1(很少为1/125),亮度
为5±0.1。

我在S3上也有同样的问题。我在回调开始时就结束了这一行:

public void onPictureTaken(byte[] data, Camera camera) {
    //Relock the camera for S3 device
    camera.startPreview();
    UnLockCamera(camera);
    LockCamera(camera);
    // your code
具有以下两个功能

public void LockCamera(Camera camera){
    //stop auto white balance and auto exposure lock
    Camera.Parameters params = camera.getParameters();
    if (params.isAutoExposureLockSupported()) {
        params.setAutoExposureLock (true);
    }
    if (params.isAutoWhiteBalanceLockSupported()) {
        params.setAutoWhiteBalanceLock(true);
    }
    camera.setParameters(params);
}
public void UnLockCamera(Camera camera){
    //stop auto white balance and auto exposure lock
    Camera.Parameters params = camera.getParameters();
    if (params.isAutoExposureLockSupported()) {
        params.setAutoExposureLock (false);
    }
    if (params.isAutoWhiteBalanceLockSupported()) {
        params.setAutoWhiteBalanceLock(false);
    }
    camera.setParameters(params);
}

这种情况发生在三星设备上,在Nexus 5和Google Glass上也是如此。Nexus 6和三星Galaxy S3上也存在同样的问题。到目前为止还没有找到任何解决办法。如果你发现了,请分享。谢谢Camera.setParameters(参数)帮我搞定了,谢谢!您是如何确定参数值应为5的?