- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
cv::cuda::DisparityBilateralFilter 是 OpenCV CUDA 模块中的一个类,用于对立体匹配生成的视差图进行双边滤波处理。这种滤波方法可以在保留边缘信息的同时平滑噪声,从而提高视差图的质量。
创建方法
静态函数:create()
cpp
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() 函数原型
cpp
void cv::cuda::DisparityBilateralFilter::filter(
InputArray disparity, // 输入的视差图(CV_8UC1 或 CV_16SC1)
InputArray image, // 原始图像(用于边缘感知滤波),CV_8UC1 或 CV_8UC3
OutputArray filtered_disparity, // 输出滤波后的视差图
Stream& stream = Stream::Null()
);
参数说明:
参数名 | 类型 | 描述 |
---|---|---|
disparity |
InputArray |
输入视差图(单通道,CV_8UC1 或 CV_16SC1) |
image |
InputArray |
原始图像(通常是左图),用于指导滤波过程 |
filtered_disparity |
OutputArray |
输出滤波后的视差图 |
stream |
Stream& |
可选 CUDA 流,默认为 Stream::Null() |
示例代码
待添加,没写出来成功的。