【问题标题】:How do I use WLSDisparityFilter and ximgproc from OpenCV on Android?如何在 Android 上使用 OpenCV 中的 WLSDisparityFilter 和 ximgproc?
【发布时间】:2019-04-07 06:26:26
【问题描述】:

官方opencv android builds 不包含opencv_contrib 模块,并且自己构建它们并非易事。幸运的是,感谢chaoyangnz,我们不必建造。

但是,在这些构建中,没有用于创建 WLSDisparityFilter 对象的 JNI 定义,因此,尽管存在底层 ximgproc 库,但您实际上无法为 filtering stereo depth maps 创建 WLS 过滤器。

如何在 Android 上使用 WLSDisparityFilter?

【问题讨论】:

    标签: android opencv stereo-3d vision


    【解决方案1】:

    幸运的是,存在底层库,因此您只需添加 java 接口即可使用它们。

    打开:/src/main/java/org/opencv/ximgproc/DisparityWLSFilter.java 文件。

    添加如下方法:

        public DisparityWLSFilter createDisparityWLSFilter(StereoMatcher matcher_left) {
            DisparityWLSFilter filter = createDisparityWLSFilter_0(matcher_left);
    
            return filter;
        }
    

    就是这样!现在您可以创建和使用 WLSDisparity 过滤器。请注意,您必须使用完整版的 filter 函数。在 Kotlin 中是这样的:

    val disparityWLSFilter = createDisparityWLSFilter(stereoSGBM)
    disparityWLSFilter.lambda = PrefHelper.getLambda()
    disparityWLSFilter.sigmaColor = PrefHelper.getSigma()
    disparityWLSFilter.filter(disparityMatLeft, leftMat, 
        disparityMatFiltered, disparityMatRight, Rect(0, 0, 
        disparityMatLeft.cols(), disparityMatLeft.rows()), rightMat)
    

    我只使用 opencv_contrib 中的这个模块,虽然我想其他缺少的 ximgproc 函数和其他 contrib 模块可以以几乎相同的方式启用。

    希望这可以帮助其他人将厚实的像素-y 视差图变成漂亮的深度图!

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2011-12-20
      • 2018-03-11
      • 2012-10-16
      • 2021-05-15
      • 1970-01-01
      相关资源
      最近更新 更多