幸运的是,存在底层库,因此您只需添加 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 视差图变成漂亮的深度图!