我从cv2.ximgproc.createDisparityWLSFilter(left_matcher)
那里得到了一个cv2.ximgproc.createDisparityWLSFilter(left_matcher)
,但我不能让ximgproc_DisparityWLSFilter.filter()
工作。
我得到的错误是
......\opencv_contrib\modules\ximgproc\src\disparity_filters.cpp,错误:断言失败(!disparity_map_right.empty() & (disparity_map_right.depth() == CV_16S) && (disparity_map_right.channels() == 1))在cv::ximgproc::DisparityWLSFilterImpl::filter中,文件OpenCV第262行
一般来说,当"ximgproc_DisparityWLSFilter“没有一个谷歌结果的时候,我该如何使用它呢?
发布于 2019-01-09 19:03:16
我也有这个问题,你需要做的是首先创建过滤器。然后你可以过滤..。希望这是合理的。下面是我在Python3.6opencv3.4.2上测试的代码片段
wls = cv2.ximgproc.createDisparityWLSFilter(left_Matcher)
filteredDisp = wls.filter(leftStereoComputeOutput, leftOriginalImage, disparity_map_right=rightStereoComputeOutput)
为了弄清楚这个部分是如何工作的,我必须查看文档以及其他人在Github上实现了什么,然后连接这些片段。很多尝试和错误。
筛选器的参数是:
Python:
filtered_disparity_map = cv.ximgproc_DisparityFilter.filter( disparity_map_left, left_view[, filtered_disparity_map[, disparity_map_right[, ROI[, right_view]]]] )
参数:
左视图的disparity_map_left视差图,1通道,CV_16S类型。隐式地假定视差值被缩放为16 (一个像素的视差对应于视差图中的值16 )。视差图可以有任意分辨率,它将自动调整大小以适应left_view分辨率。
left_view左视图的原始立体对引导滤波过程,8位单通道或三通道图像。
filtered_disparity_map输出视差图
disparity_map_right可选参数,一些实现也可能使用正确视图的视差映射来计算置信图,例如。
ROI区域的视差图进行滤波。可选,通常应该自动设置。
right_view可选参数,一些实现也可能使用原始立体声对的正确视图。
上述参数都是在1DisparityFilter.html上找到的。
发布于 2017-06-01 11:19:38
与c++不同,Python不能很好地处理指针。所以争论是
Filtered_disp = ximgproc_DisparityWLSFilter.filter(left_disp,左,无,right_disp)
请注意,它不再是Python中的一个空函数!
不过,我是通过反复试验才弄明白的。
https://stackoverflow.com/questions/44276962
复制相似问题