OpenCV 4.11.0
开源计算机视觉库
|
类 | |
类 | cv::cuda::DisparityBilateralFilter |
使用联合双边滤波细化视差图的类:更多… | |
类 | cv::cuda::StereoBeliefPropagation |
使用置信传播算法计算立体匹配(视差图)的类:更多… | |
类 | cv::cuda::StereoBM |
使用块匹配算法计算立体匹配(视差图)的类:更多… | |
类 | cv::cuda::StereoConstantSpaceBP |
使用常数空间置信传播算法计算立体匹配的类:更多… | |
类 | cv::cuda::StereoSGM |
该类实现了改进的H. Hirschmuller算法 [125]。限制和区别如下:更多… | |
Ptr< cuda::DisparityBilateralFilter > cv::cuda::createDisparityBilateralFilter | ( | int | ndisp = 64, |
int | radius = 3, | ||
int | iters = 1 ) |
#include <opencv2/cudastereo.hpp>
创建 DisparityBilateralFilter 对象。
ndisp | 视差数量。 |
radius | 滤波器 半径。 |
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 | 算法比较的块的线性大小。大小应为奇数(因为块以当前像素为中心)。较大的块大小意味着更平滑,但精度较低的视差图。较小的块大小会得到更详细的视差图,但算法找到错误对应关系的可能性更高。 |
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类型。 |
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。 |
cv::cuda::drawColorDisp | ( | 输入数组 | src_disp, |
输出数组 | dst_disp, | ||
int | ndisp, | ||
流 & | stream = Stream::Null() ) |
#include <opencv2/cudastereo.hpp>
为视差图像着色。
src_disp | 输入单通道 8 位无符号、16 位有符号、32 位有符号或 32 位浮点视差图像。如果使用 16 位有符号格式,则假定值没有小数位。 |
dst_disp | 输出视差图像。它与 src_disp 大小相同。类型为 BGRA 格式 (alpha = 255) 的 CV_8UC4。 |
ndisp | 视差数量。 |
stream | 异步版本的流。 |
此函数通过首先将视差值从 [0..ndisp) 区间转换为 HSV 颜色空间(其中不同的视差值对应于不同的色调),然后将像素转换为 RGB 以进行可视化,从而绘制彩色视差图。
|
内联 |
cv::cuda::reprojectImageTo3D | ( | 输入数组 | disp, |
输出数组 | xyzw, | ||
输入数组 | Q, | ||
int | dst_cn = 4, | ||
流 & | 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 | 异步版本的流。 |