cameraX对焦不准确

维卡斯·阿查里亚(Vikas Acharya)

我正在创建一个自定义相机应用,并尝试添加以下对焦功能

val factory = SurfaceOrientedMeteringPointFactory(
                 viewFinder.width.toFloat(),
                 viewFinder.height.toFloat()
              )
val point = factory.createPoint(event.x, event.y)

try {
    cameraControl?.cancelFocusAndMetering()
    val action = FocusMeteringAction.Builder(point, FocusMeteringAction.FLAG_AF)
                 .setAutoCancelDuration(5, TimeUnit.SECONDS)
                 .build()
}

对焦不准确,因为您可以在白色圆圈下方看到我轻按的位置,以使笔聚焦并查看它的聚焦位置。

拍子和焦点之间的距离非常大。我的默认相机应用不是这种情况。

在此处输入图片说明 在此处输入图片说明

如何将对焦调整到我点击的位置 PreviewView

侯赛因·哈基姆(Husayn Hakeem)

摄像头无法准确地获取对轻敲区域的聚焦,因为SurfaceOrientedMeteringPointFactory从UI坐标到归一化传感器rect坐标的转换可能不正确。转换还应考虑诸如PreviewView的布局方向,缩放比例类型,设备的旋转以及相机是否正面/背面等因素。SurfaceOrientedMeteringPointFactory不这样做。如果您好奇转换的样子,请查看PreviewViewMeteringPointFactory

PreviewView已经提供了一个计量点工厂,该工厂可以在内部处理转换,您可以调用PreviewView.getMeteringPointFactory()抽头坐标并将其传递给它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章