OpenCV 4.10.0
开源计算机视觉库
|
类 | |
类 | cv::cuda::DisparityBilateralFilter |
使用联合双边滤波对视差图进行细化。 : 更多... | |
类 | cv::cuda::StereoBeliefPropagation |
使用信念传播算法计算立体匹配。 : 更多... | |
类 | cv::cuda::StereoBM |
使用块匹配算法计算立体匹配(视差图)。 : 更多... | |
类 | cv::cuda::StereoConstantSpaceBP |
使用恒定空间信念传播算法计算立体匹配。 : 更多... | |
类 | cv::cuda::StereoSGM |
该类实现了改进的 H. Hirschmuller 算法 [126]。限制和差异如下: 更多... | |
Ptr< cuda::DisparityBilateralFilter > cv::cuda::createDisparityBilateralFilter | ( | int | ndisp = 64 , |
int | radius = 3 , |
||
int | iters = 1 |
||
) |
#include <opencv2/cudastereo.hpp>
创建 DisparityBilateralFilter 对象。
ndisp | 视差数量。 |
radius | Filter 半径。 |
iters | 迭代次数。 |
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 类型。 |
Ptr< cuda::StereoBM > cv::cuda::createStereoBM | ( | int | numDisparities = 64 , |
int | blockSize = 19 |
||
) |
#include <opencv2/cudastereo.hpp>
创建 StereoBM 对象。
numDisparities | 视差搜索范围。对于每个像素,算法将找到从 0(默认最小视差)到 numDisparities 的最佳视差。通过更改最小视差,可以将搜索范围移位。 |
blockSize | 算法比较的块的线性大小。大小应为奇数(因为块以当前像素为中心)。更大的块大小意味着更平滑,但更不精确的视差图。较小的块大小会产生更详细的视差图,但算法找到错误对应关系的可能性更高。 |
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 类型。 |
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。 |
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 | 视差数量。 |
stream | Stream 用于异步版本。 |
此函数通过将视差值从 [0..ndisp) 区间首先转换为 HSV 颜色空间(其中不同的视差值对应于不同的色调),然后将像素转换为 RGB 以便于可视化,来绘制彩色视差图。
|
inline |
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。 |
stream | Stream 用于异步版本。 |