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

详细说明

ICP 点到平面里程计算法

类  cv::linemod::ColorGradient
 Modality,从彩色图像计算量化梯度方向。 更多...
 
类  cv::rgbd::DepthCleaner
 
类  cv::linemod::DepthNormal
 Modality,从密集深度图计算量化表面法线。 更多...
 
类  cv::linemod::Detector
 使用 LINE 模板匹配算法和任意模态集合的对象检测器。 更多...
 
类  cv::rgbd::FastICPOdometry
 
结构体  cv::linemod::Feature
 由位置和标签描述的判别特征。 更多...
 
类  cv::rgbd::ICPOdometry
 
结构体  cv::linemod::Match
 表示成功的模板匹配。 更多...
 
类  cv::linemod::Modality
 用于插入 LINE 模板匹配表示的模态的接口。 更多...
 
类  cv::rgbd::Odometry
 
结构体  cv::rgbd::OdometryFrame
 
类  cv::linemod::QuantizedPyramid
 表示在图像金字塔上操作的模态。 更多...
 
结构体  cv::rgbd::RgbdFrame
 
类  cv::rgbd::RgbdICPOdometry
 
类  cv::rgbd::RgbdNormals
 
类  cv::rgbd::RgbdOdometry
 
类  cv::rgbd::RgbdPlane
 
结构体  cv::linemod::Template
 

函数

 cv::linemod::QuantizedPyramid::Candidate::Candidate (int x, int y, int label, float score)
 
 cv::linemod::Feature::Feature (int x, int y, int label)
 
 cv::linemod::Match::Match (int x, int y, float similarity, const String &class_id, int template_id)
 
void cv::linemod::colormap (const Mat &quantized, Mat &dst)
 用于查看的量化图像的调试函数。
 
void cv::rgbd::depthTo3d (InputArray depth, InputArray K, OutputArray points3d, InputArray mask=noArray())
 
void cv::rgbd::depthTo3dSparse (InputArray depth, InputArray in_K, InputArray in_points, OutputArray points3d)
 
void cv::linemod::drawFeatures (InputOutputArray img, const std::vector< Template > &templates, const Point2i &tl, int size=10)
 绘制 linemod 特征的调试函数。
 
Ptr< linemod::Detectorcv::linemod::getDefaultLINE ()
 使用彩色梯度和 LINE 算法的检测器工厂函数。
 
Ptr< linemod::Detectorcv::linemod::getDefaultLINEMOD ()
 使用彩色梯度和深度法线和 LINE-MOD 算法的检测器工厂函数。
 
bool cv::rgbd::isValidDepth (const double &depth)
 
bool cv::rgbd::isValidDepth (const float &depth)
 
bool cv::rgbd::isValidDepth (const int &depth)
 
bool cv::rgbd::isValidDepth (const short int &depth)
 
bool cv::rgbd::isValidDepth (const unsigned int &depth)
 
bool cv::rgbd::isValidDepth (const unsigned short int &depth)
 
void cv::rgbd::registerDepth (InputArray unregisteredCameraMatrix, InputArray registeredCameraMatrix, InputArray registeredDistCoeffs, InputArray Rt, InputArray unregisteredDepth, const Size &outputImagePlaneSize, OutputArray registeredDepth, bool depthDilation=false)
 
void cv::rgbd::rescaleDepth (InputArray in, int depth, OutputArray out, double depth_factor=1000.0)
 
void cv::rgbd::warpFrame (const Mat &image, const Mat &depth, const Mat &mask, const Mat &Rt, const Mat &cameraMatrix, const Mat &distCoeff, OutputArray warpedImage, OutputArray warpedDepth=noArray(), OutputArray warpedMask=noArray())
 

函数文档 (Function Documentation)

◆ Candidate()

cv::linemod::QuantizedPyramid::Candidate::Candidate ( int x,
int y,
int label,
float score )
内联

◆ Feature()

cv::linemod::Feature::Feature ( int x,
int y,
int label )
内联

◆ Match()

cv::linemod::Match::Match ( int x,
int y,
float similarity,
const String & class_id,
int template_id )
内联

◆ colormap()

void cv::linemod::colormap ( const Mat & quantized,
Mat & dst )
Python
cv.linemod.colormap(quantized[, dst]) -> dst

#include <opencv2/rgbd/linemod.hpp>

用于查看的量化图像的调试函数。

◆ depthTo3d()

void cv::rgbd::depthTo3d ( InputArray depth,
InputArray K,
OutputArray points3d,
InputArray mask = noArray() )
Python
cv.rgbd.depthTo3d(depth, K[, points3d[, mask]]) -> points3d

#include <opencv2/rgbd/depth.hpp>

将深度图像转换为一组有组织的 3D 点。坐标系是 x 指向左,y 指向下,z 指离相机

参数
depth深度图像 (如果以 short int CV_U 给出,则假定其单位为毫米 (如 Microsoft Kinect),否则,如果以 CV_32F 或 CV_64F 给出,则假定其单位为米)
K校准矩阵
points3d生成的 3D 点。如果 depth 是 CV_32F 或 CV_64F,它们的深度与 depth 相同,如果 depth 是 CV_U,则它们的深度与 K 相同
mask要考虑的点(可以是空的)的掩码

◆ depthTo3dSparse()

void cv::rgbd::depthTo3dSparse ( InputArray depth,
InputArray in_K,
InputArray in_points,
OutputArray points3d )
Python
cv.rgbd.depthTo3dSparse(depth, in_K, in_points[, points3d]) -> points3d

#include <opencv2/rgbd/depth.hpp>

参数
depth深度图像
in_K
in_pointsxy 坐标列表
points3d生成的 3D 点

◆ drawFeatures()

void cv::linemod::drawFeatures ( InputOutputArray img,
const std::vector< Template > & templates,
const Point2i & tl,
int size = 10 )
Python
cv.linemod.drawFeatures(img, templates, tl[, size]) -> img

#include <opencv2/rgbd/linemod.hpp>

绘制 linemod 特征的调试函数。

参数
img
templates参见 Detector::addTemplate
tl模板 bounding box 左上角偏移量,参见 Detector::addTemplate
size (大小)标记大小,参见 cv::drawMarker

◆ getDefaultLINE()

Ptr< linemod::Detector > cv::linemod::getDefaultLINE ( )
Python
cv.linemod.getDefaultLINE() -> retval

#include <opencv2/rgbd/linemod.hpp>

使用彩色梯度和 LINE 算法的检测器工厂函数。

适用于 VGA 图像的默认参数设置。

◆ getDefaultLINEMOD()

Ptr< linemod::Detector > cv::linemod::getDefaultLINEMOD ( )
Python
cv.linemod.getDefaultLINEMOD() -> retval

#include <opencv2/rgbd/linemod.hpp>

使用彩色梯度和深度法线和 LINE-MOD 算法的检测器工厂函数。

适用于 VGA 图像的默认参数设置。

◆ isValidDepth() [1/6]

bool cv::rgbd::isValidDepth ( const double & depth)
内联

#include <opencv2/rgbd/depth.hpp>

此函数的调用图

◆ isValidDepth() [2/6]

bool cv::rgbd::isValidDepth ( const float & depth)
内联

#include <opencv2/rgbd/depth.hpp>

检查值是否为有效深度。对于 CV_16U 或 CV_16S,约定如果它是限制值则无效。对于 float/double,我们只检查它是否为 NaN

参数
depth要检查有效性的深度
此函数的调用图

◆ isValidDepth() [3/6]

bool cv::rgbd::isValidDepth ( const int & depth)
内联

◆ isValidDepth() [4/6]

bool cv::rgbd::isValidDepth ( const short int & depth)
内联

◆ isValidDepth() [5/6]

bool cv::rgbd::isValidDepth ( const unsigned int & depth)
内联

◆ isValidDepth() [6/6]

bool cv::rgbd::isValidDepth ( const unsigned short int & depth)
内联

◆ registerDepth()

void cv::rgbd::registerDepth ( InputArray unregisteredCameraMatrix,
InputArray registeredCameraMatrix,
InputArray registeredDistCoeffs,
InputArray Rt,
InputArray unregisteredDepth,
const Size & outputImagePlaneSize,
OutputArray registeredDepth,
bool depthDilation = false )
Python
cv.rgbd.registerDepth(unregisteredCameraMatrix, registeredCameraMatrix, registeredDistCoeffs, Rt, unregisteredDepth, outputImagePlaneSize[, registeredDepth[, depthDilation]]) -> registeredDepth

#include <opencv2/rgbd/depth.hpp>

将深度数据注册到外部相机。注册通过创建深度点云,用相机之间的刚体变换转换点云,然后将变换后的点投影到 RGB 相机来完成。

uv_rgb = K_rgb * [R | t] * z * inv(K_ir) * uv_ir

目前不检查负深度值。

参数
unregisteredCameraMatrix深度相机的相机矩阵
registeredCameraMatrix外部相机的相机矩阵
registeredDistCoeffs外部相机的畸变系数
Rt相机之间的刚体变换。将点从深度相机坐标系变换到外部相机坐标系。
unregisteredDepth输入深度数据
outputImagePlaneSize外部相机的图像平面尺寸 (宽度, 高度)
registeredDepth将深度变换到外部相机的结果
depthDilation是否对深度进行膨胀以避免空洞和遮挡错误 (可选)

◆ rescaleDepth()

void cv::rgbd::rescaleDepth ( InputArray in,
int depth,
OutputArray out,
double depth_factor = 1000.0 )
Python
cv.rgbd.rescaleDepth(in_, depth[, out[, depth_factor]]) -> out

#include <opencv2/rgbd/depth.hpp>

如果输入图像类型为 CV_16UC1 (如 Kinect),则将其转换为浮点数,除以 depth_factor 得到米为单位的深度,并将 0 值转换为 std::numeric_limits<float>::quiet_NaN()。否则,图像将被简单地转换为浮点数。

参数
in深度图像 (如果以 short int CV_U 给出,则假定其单位为毫米 (如 Microsoft Kinect),否则假定其单位为米)
depth所需的输出深度 (浮点数或双精度)
out重缩放后的浮点深度图像
depth_factor(可选) 深度转换为距离的因子 (默认值为 1000.0,适用于 Kinect 传感器)

◆ warpFrame()

void cv::rgbd::warpFrame ( const Mat & 图像,
const Mat & depth,
const Mat & mask,
const Mat & Rt,
const Mat & cameraMatrix,
const Mat & distCoeff,
OutputArray warpedImage,
OutputArray warpedDepth = noArray(),
OutputArray warpedMask = noArray() )
Python
cv.rgbd.warpFrame(image, depth, mask, Rt, cameraMatrix, distCoeff[, warpedImage[, warpedDepth[, warpedMask]]]) -> warpedImage, warpedDepth, warpedMask

#include <opencv2/rgbd/depth.hpp>

变换图像: 从深度计算 3D 点,使用给定的变换进行变换,然后将彩色点云投影到图像平面。此函数可用于可视化 Odometry 算法的结果。

参数
图像图像 (CV_8UC1 或 CV_8UC3 类型)
depth深度 (在 depthTo3d 函数中使用过的类型)
mask使用像素的掩码 (CV_8UC1),它可以是空的
Rt将应用于从深度计算的 3D 点的变换
cameraMatrix相机矩阵
distCoeff畸变系数
warpedImage变换后的图像。
warpedDepth变换后的深度。
warpedMask变换后的掩码。