首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在camera2 api,android中设置无限焦点?

如何在camera2 api,android中设置无限焦点?
EN

Stack Overflow用户
提问于 2017-02-07 15:44:27
回答 2查看 2.7K关注 0票数 5

当我使用外置鱼眼镜头时,我想将我的自定义相机焦距设置为无穷远,这是我到目前为止所做的:

代码语言:javascript
复制
builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF);
builder.set(CaptureRequest.LENS_FOCUS_DISTANCE, 0.0f);

但结果却是如此模糊。

我用的是三星S6和Nexus5,外置镜头的广角是170度。

有人能帮上忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-07 15:48:15

如果你只是在谈论使用内置相机的镜头来实现鱼眼,那么你应该使用的最低值是:

代码语言:javascript
复制
float minFocalDist = cameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);

如果你使用外置镜头,那么我认为正确的方法实际上是在相机上使用自动对焦,因为这应该对焦到鱼眼镜头的焦距……我认为。因此,外部透镜负责鱼眼,内部透镜负责自动对焦。但是,如果这不起作用,那么看看当您将焦距设置为超焦距时会得到什么。这个距离可能不是最优的,但在大多数情况下应该是有效的。

代码语言:javascript
复制
float hyperFocalDist = cameraCharacteristics.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE);
票数 4
EN

Stack Overflow用户

发布于 2021-03-12 22:38:41

对于任何在这里搜索的人来说,要获得安卓CameraX,相机特征,如CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE.

2021年的语法是这样的...

所以,你已经完成了获取相机的过程...

代码语言:javascript
复制
theCamera = cameraProvider.bindToLifecycle((LifecycleOwner)this,
              yourCameraSelector, yourImageAnalysis, yourPreview);

现在的代码是:

代码语言:javascript
复制
CameraCharacteristics camChars = Camera2CameraInfo
   .extractCameraCharacteristics(theCamera.getCameraInfo());
float discoveredMinFocusDistance = camChars
   .get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42084327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档