【问题标题】:Disabling automatic image stabilization on Android (Moto Z)?在 Android (Moto Z) 上禁用自动图像稳定?
【发布时间】:2019-08-21 07:31:26
【问题描述】:

我正在使用 OpenCV 在 Android 手机 (Moto Z) 上编写用于计算机视觉的自定义应用程序。更复杂的是,我在相机上安装了一个鱼眼附加镜头。

现在,我注意到,当我在获取预览图像的同时移动设备时,鱼眼镜头照亮的圆形区域会明显移动,并且即使设备不移动也会抖动(参见https://youtu.be/J4Ns0mzgFww 的说明,很难描述)。

效果看起来就像鱼眼镜头在实际相机镜头前发生物理移动,但它的连接非常牢固,即使移动非常缓慢也会发生这种情况。所以我唯一的解释是在后台某处运行某种低级图像稳定过程。

不幸的是,这完全打乱了我的相机校准,因为 cx/cy 不再稳定。我看过how can i set the camera function that anti-shake(image Stabilizer) at android,但Camera.Parameters 对象告诉我video-stabilization-supported=false,并且更改场景模式也没有任何区别。

关于如何获得不稳定预览图像的任何其他提示/想法?我想在 RAW 模式下使用 Camera2 API 可能会起作用,但这意味着要重写一大块 OpenCV 图像采集代码...首选替代方案 :-)

【问题讨论】:

    标签: android opencv android-camera android-camera2


    【解决方案1】:

    像往常一样,我在发布问题 15 分钟后自己想通了。那好吧。无论如何。

    这可以通过

    使用 Camera2 API
    requestBuilder.set(CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE, 
      CameraMetadata.LENS_OPTICAL_STABILIZATION_MODE_OFF);
    

    仍然意味着我必须切换到 Camera2 API,但至少不要切换到 RAW。从 4.0 开始,OpenCV 实际上有一个现成的JavaCamera2View 类,只需要稍作修改。 https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html#LENS_OPTICAL_STABILIZATION_MODE 提供更多详细信息/文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      相关资源
      最近更新 更多