- 操作系統: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() |
示例代碼
待添加,沒寫出來成功的。