OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项

详细描述

类  cv::cuda::DisparityBilateralFilter
 使用联合双边滤波细化视差图的类。 : 更多...
 
类  cv::cuda::StereoBeliefPropagation
 使用信念传播算法计算立体匹配的类。 : 更多...
 
类  cv::cuda::StereoBM
 使用块匹配算法计算立体匹配(视差图)的类。 : 更多...
 
类  cv::cuda::StereoConstantSpaceBP
 使用常数空间信念传播算法计算立体匹配的类。 : 更多...
 
类  cv::cuda::StereoSGM
 该类实现了修改后的 H. Hirschmuller 算法 [128]。限制和差异如下: 更多...
 

函数

Ptr< cuda::DisparityBilateralFiltercv::cuda::createDisparityBilateralFilter (int ndisp=64, int radius=3, int iters=1)
 创建 DisparityBilateralFilter 对象。
 
Ptr< cuda::StereoBeliefPropagationcv::cuda::createStereoBeliefPropagation (int ndisp=64, int iters=5, int levels=5, int msg_type=CV_32F)
 创建 StereoBeliefPropagation 对象。
 
Ptr< cuda::StereoBMcv::cuda::createStereoBM (int numDisparities=64, int blockSize=19)
 创建 StereoBM 对象。
 
Ptr< cuda::StereoConstantSpaceBPcv::cuda::createStereoConstantSpaceBP (int ndisp=128, int iters=8, int levels=4, int nr_plane=4, int msg_type=CV_32F)
 创建 StereoConstantSpaceBP 对象。
 
Ptr< cuda::StereoSGMcv::cuda::createStereoSGM (int minDisparity=0, int numDisparities=128, int P1=10, int P2=120, int uniquenessRatio=5, int mode=cv::cuda::StereoSGM::MODE_HH4)
 创建 StereoSGM 对象。
 
void cv::cuda::drawColorDisp (InputArray src_disp, OutputArray dst_disp, int ndisp, Stream &stream=Stream::Null())
 为视差图像着色。
 
void cv::cuda::reprojectImageTo3D (GpuMat disp, GpuMat &xyzw, Mat Q, int dst_cn=4, Stream &stream=Stream::Null())
 
void cv::cuda::reprojectImageTo3D (InputArray disp, OutputArray xyzw, InputArray Q, int dst_cn=4, Stream &stream=Stream::Null())
 将视差图像重新投影到3D空间。
 

函数文档

◆ createDisparityBilateralFilter()

Ptr< cuda::DisparityBilateralFilter > cv::cuda::createDisparityBilateralFilter ( int ndisp = 64,
int radius = 3,
int iters = 1 )

#include <opencv2/cudastereo.hpp>

创建 DisparityBilateralFilter 对象。

参数
ndisp视差数量。
radius滤波器半径。
itersNumber of iterations.

◆ createStereoBeliefPropagation()

Ptr< cuda::StereoBeliefPropagation > cv::cuda::createStereoBeliefPropagation ( int ndisp = 64,
int iters = 5,
int levels = 5,
int msg_type = CV_32F )

#include <opencv2/cudastereo.hpp>

创建 StereoBeliefPropagation 对象。

参数
ndisp视差数量。
iters每个级别上的 BP 迭代次数。
levels级别数量。
msg_type消息类型。支持 CV_16SC1 和 CV_32FC1 类型。

◆ createStereoBM()

Ptr< cuda::StereoBM > cv::cuda::createStereoBM ( int numDisparities = 64,
int blockSize = 19 )

#include <opencv2/cudastereo.hpp>

创建 StereoBM 对象。

参数
numDisparities视差搜索范围。对于每个像素,算法将从 0(默认最小视差)到 numDisparities 中找到最佳视差。搜索范围可以通过改变最小视差来调整。
blockSize算法比较的块的线性大小。大小应为奇数(因为块以当前像素为中心)。较大的块大小意味着更平滑但精度较低的视差图。较小的块大小提供更详细的视差图,但算法找到错误匹配的可能性更高。

◆ createStereoConstantSpaceBP()

Ptr< cuda::StereoConstantSpaceBP > cv::cuda::createStereoConstantSpaceBP ( int ndisp = 128,
int iters = 8,
int levels = 4,
int nr_plane = 4,
int msg_type = CV_32F )

#include <opencv2/cudastereo.hpp>

创建 StereoConstantSpaceBP 对象。

参数
ndisp视差数量。
iters每个级别上的 BP 迭代次数。
levels级别数量。
nr_plane第一层上的视差级别数量。
msg_type消息类型。支持 CV_16SC1 和 CV_32FC1 类型。

◆ createStereoSGM()

Ptr< cuda::StereoSGM > cv::cuda::createStereoSGM ( int minDisparity = 0,
int numDisparities = 128,
int P1 = 10,
int P2 = 120,
int uniquenessRatio = 5,
int mode = cv::cuda::StereoSGM::MODE_HH4 )

#include <opencv2/cudastereo.hpp>

创建 StereoSGM 对象。

参数
minDisparity最小可能视差值。通常为零,但有时校正算法会使图像发生偏移,因此需要相应地调整此参数。
numDisparities最大视差减去最小视差。值必须为 64、128 或 256。
P1控制视差平滑度的第一个参数。此参数用于倾斜表面(非正面平行)的情况。
P2控制视差平滑度的第二个参数。此参数用于“解决”深度不连续问题。
uniquenessRatio最佳(最小)计算成本函数值应“胜过”次佳值以被视为正确匹配的百分比裕量。通常,5-15 范围内的值就足够了。
mode将其设置为 StereoSGM::MODE_HH 以运行完整尺度的两遍动态规划算法。它将消耗 O(W*H*numDisparities) 字节。默认情况下,它设置为 StereoSGM::MODE_HH4

◆ drawColorDisp()

void cv::cuda::drawColorDisp ( InputArray src_disp,
OutputArray dst_disp,
int ndisp,
Stream & stream = Stream::Null() )

#include <opencv2/cudastereo.hpp>

为视差图像着色。

参数
src_disp输入单通道 8 位无符号、16 位有符号、32 位有符号或 32 位浮点视差图像。如果使用 16 位有符号格式,则假定值没有小数位。
dst_disp输出视差图像。它与 src_disp 具有相同的大小。类型为 BGRA 格式的 CV_8UC4(alpha = 255)。
ndisp视差数量。
异步版本的

此函数通过首先将视差值从 [0..ndisp) 区间转换为 HSV 颜色空间(其中不同的视差值对应不同的色相),然后将像素转换为 RGB 以进行可视化,从而绘制彩色视差图。

◆ reprojectImageTo3D() [1/2]

void cv::cuda::reprojectImageTo3D ( GpuMat disp,
GpuMat & xyzw,
Mat Q,
int dst_cn = 4,
Stream & stream = Stream::Null() )
inline

#include <opencv2/cudastereo.hpp>

此函数的调用图如下

◆ reprojectImageTo3D() [2/2]

void cv::cuda::reprojectImageTo3D ( InputArray disp,
OutputArray xyzw,
InputArray Q,
int dst_cn = 4,
Stream & stream = Stream::Null() )

#include <opencv2/cudastereo.hpp>

将视差图像重新投影到3D空间。

参数
disp输入单通道 8 位无符号、16 位有符号、32 位有符号或 32 位浮点视差图像。如果使用 16 位有符号格式,则假定值没有小数位。
xyzw大小与 disp 相同的 3 或 4 通道浮点图像。xyzw(x,y) 的每个元素包含根据视差图计算出的点 (x,y) 的 3D 坐标 (x,y,z) 或 (x,y,z,1)。
Q可通过 stereoRectify 获得的 \(4 \times 4\) 透视变换矩阵。
dst_cn输出图像的通道数。可以是 3 或 4。
异步版本的
另请参见
reprojectImageTo3D