OPenCV CUDA模块立体匹配------对立体匹配生成的视差图进行双边滤波处理类cv::cuda::DisparityBilateralFilter
- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
cv::cuda::DisparityBilateralFilter 是 OpenCV CUDA 模块中的一个类,用于对立体匹配生成的视差图进行双边滤波处理。这种滤波方法可以在保留边缘信息的同时平滑噪声,从而提高视差图的质量。
创建方法
静态函数:create()
static Ptr<cv::cuda::DisparityBilateralFilter> cv::cuda::DisparityBilateralFilter::create(int ndisp = 16);
参数说明:
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
ndisp | int | 16 | 视差范围的最大值,通常与 StereoBM 或 StereoSGBM 中设置的 numDisparities 相同 |
主要成员函数
函数名 | 返回类型 | 描述 |
---|---|---|
filter() | void | 对输入的视差图应用双边滤波 |
getEdgeThreshold() | float | 获取边缘阈值 |
setEdgeThreshold(float) | void | 设置边缘阈值 |
getMaxDiscThreshold() | float | 获取最大不连续性阈值 |
setMaxDiscThreshold(float) | void | 设置最大不连续性阈值 |
getSigmaRange() | float | 获取颜色空间标准差(range sigma) |
setSigmaRange(float) | void | 设置颜色空间标准差 |
getSigmaSpace() | float | 获取坐标空间标准差(spatial sigma) |
setSigmaSpace(float) | void | 设置坐标空间标准差 |
filter() 函数原型
void cv::cuda::DisparityBilateralFilter::filter(InputArray disparity, // 输入的视差图(CV_8UC1 或 CV_16SC1)InputArray image, // 原始图像(用于边缘感知滤波),CV_8UC1 或 CV_8UC3OutputArray filtered_disparity, // 输出滤波后的视差图Stream& stream = Stream::Null()
);
参数说明:
参数名 | 类型 | 描述 |
---|---|---|
disparity | InputArray | 输入视差图(单通道,CV_8UC1 或 CV_16SC1) |
image | InputArray | 原始图像(通常是左图),用于指导滤波过程 |
filtered_disparity | OutputArray | 输出滤波后的视差图 |
stream | Stream& | 可选 CUDA 流,默认为 Stream::Null() |
示例代码
待添加,没写出来成功的。