java对焦_java - 如何手动控制Camera2手动对焦? - 堆栈内存溢出

在Java中使用Camera2 API时,尝试在启动预览时设置固定的镜头焦距,但设置焦点距离后预览没有显示预期效果。代码示例展示了如何设置CONTROL_AF_MODE为OFF并改变LENS_FOCUS_DISTANCE,然而更改焦点值并未在预览中体现。问题在于如何正确实现手动对焦并看到效果。
摘要由CSDN通过智能技术生成

问题

我想在预览开始时在镜头焦距中设置一个固定值,直到我关闭应用程序。

将AF模式设置为关闭并将镜头聚焦距离设置为值后。 预览不显示任何效果,但更改了焦点2值。

我怎样才能克服这个问题?

示例代码(Java)

private CaptureRequest mPreviewRequest;

private void startCameraPreview() throws CameraAccessException {

SurfaceTexture texture = textureview.getSurfaceTexture();

texture.setDefaultBufferSize(imageDimensions.getWidth(), imageDimensions.getHeight());

Surface surface = new Surface(texture);

mPreviewRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);

mPreviewRequestBuilder.addTarget(surface);

System.out.println("Focus 1 ====== "+mPreviewRequestBuilder.get(CaptureRequest.LENS_FOCUS_DISTANCE));

cameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {

@Override

public void onConfigured(@NonNull CameraCaptureSession session) {

if (cameraDevice == null) {

return;

}

cameraSession = session;

try {

mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE,CaptureRequest.CONTROL_AF_MODE_OFF);

mPreviewRequestBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, 7.5f);

mPreviewRequest = mPreviewRequestBuilder.build();

cameraSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback, backgroundHandler);

System.out.println("Focus 2 ====== "+mPreviewRequestBuilder.get(CaptureRequest.LENS_FOCUS_DISTANCE));

} catch (CameraAccessException e) {

e.printStackTrace();

}

}

@Override

public void onConfigureFailed(@NonNull CameraCaptureSession session) {

Toast.makeText(getApplicationContext(),"Failed",Toast.LENGTH_SHORT).show();

}

}, null);

}

private static final int STATE_PREVIEW = 0;

private int mState = STATE_PREVIEW;

private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() {

private void process(CaptureResult result){

switch(mState){

case STATE_PREVIEW:{

break;

}

}

}

};

产量

焦点1 ====== 0.0

焦点2 ====== 7.5

当我改变值时,我看不出差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值