OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
无匹配
| 函数

详细描述

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

函数

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视差数量。
radiusFilter 半径。
iters迭代次数。

◆ 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 具有相同的大小。类型为 CV_8UC4,采用 BGRA 格式(alpha = 255)。
ndisp视差数量。
streamStream 用于异步版本。

此函数通过将视差值从 [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\(4 \times 4\) 透视变换矩阵,可以通过 stereoRectify 获得。
dst_cn输出图像的通道数。可以是 3 或 4。
streamStream 用于异步版本。
另请参阅
reprojectImageTo3D