OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项

详细说明

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

函数

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 空间。
 

函数文档 (Function Documentation)

◆ createDisparityBilateralFilter()

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

#include <opencv2/cudastereo.hpp>

创建 DisparityBilateralFilter 对象。

参数
ndisp视差的数量。
radius滤波器半径。
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最小可能的视差值。通常为0,但有时校正算法会移动图像,因此需要相应地调整此参数。
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视差的数量。
Stream 用于异步版本。

此函数通过首先将视差值从[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() )
内联

#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。
Stream 用于异步版本。
另请参阅
reprojectImageTo3D