OpenCV  4.10.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
| 函数
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())
 

函数文档

◆ Candidate()

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

◆ Feature()

cv::linemod::Feature::Feature ( int  x,
int  y,
int  label 
)
inline

◆ Match()

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

◆ 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模板 bbox 左上角偏移参见 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)
inline

#include <opencv2/rgbd/depth.hpp>

以下是此函数的调用图

◆ isValidDepth() [2/6]

bool cv::rgbd::isValidDepth ( const float &  depth)
inline

#include <opencv2/rgbd/depth.hpp>

检查该值是否为有效的深度。对于 CV_16U 或 CV_16S,如果它是极限值,则按惯例为无效。对于浮点数/双精度数,我们只检查它是否为 NaN。

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

bool cv::rgbd::isValidDepth ( const int &  depth)
inline

◆ isValidDepth() [4/6]

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

#include <opencv2/rgbd/depth.hpp>

◆ isValidDepth() [5/6]

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

#include <opencv2/rgbd/depth.hpp>

◆ isValidDepth() [6/6]

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

#include <opencv2/rgbd/depth.hpp>

◆ 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深度图像(如果给出为短整型 CV_U,则假定为以毫米为单位的深度(如 Microsoft Kinect 所做),则假定为米为单位)
depth所需的输出深度(浮点数或双精度数)
out重新缩放的浮点深度图像
depth_factor(可选)将深度转换为距离的系数(默认情况下,Kinect 传感器为 1000.0)

◆ warpFrame()

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() 
)
Python
cv.rgbd.warpFrame(image, depth, mask, Rt, cameraMatrix, distCoeff[, warpedImage[, warpedDepth[, warpedMask]]]) -> warpedImage, warpedDepth, warpedMask

#include <opencv2/rgbd/depth.hpp>

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

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