OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
RGB-深度处理

详细描述

ICP 点到平面里程计算法

类  cv::linemod::ColorGradient
 模态,用于从彩色图像计算量化梯度方向。更多...
 
类  cv::rgbd::DepthCleaner
 
类  cv::linemod::DepthNormal
 模态,用于从密集深度图中计算量化表面法线。更多...
 
类  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 深度,
InputArray 输入的相机内参矩阵。,
OutputArray points3d,
InputArray mask = noArray() )
Python
cv.rgbd.depthTo3d(depth, K[, points3d[, mask]]) -> points3d

#include <opencv2/rgbd/depth.hpp>

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

参数
深度深度图像(如果给定为短整型CV_U,则假定深度单位为毫米(如Microsoft Kinect),否则,如果给定为CV_32F或CV_64F,则假定单位为米)
输入的相机内参矩阵。标定矩阵
points3d结果3D点。如果`depth`是CV_32F或CV_64F类型,则其深度与`depth`相同;如果`depth`是CV_U类型,则其深度与`K`相同。
mask要考虑的点的掩码(可以为空)

◆ depthTo3dSparse()

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

#include <opencv2/rgbd/depth.hpp>

参数
深度深度图像
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模板边界框左上角偏移,参见 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 & 深度)
inline

#include <opencv2/rgbd/depth.hpp>

此函数的调用图如下

◆ isValidDepth() [2/6]

bool cv::rgbd::isValidDepth ( const float & 深度)
inline

#include <opencv2/rgbd/depth.hpp>

检查值是否为有效深度。对于CV_16U或CV_16S,如果达到极限值则约定为无效。对于浮点/双精度数,我们只检查它是否为NaN。

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

◆ isValidDepth() [3/6]

bool cv::rgbd::isValidDepth ( const int & 深度)
inline

◆ isValidDepth() [4/6]

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

◆ isValidDepth() [5/6]

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

◆ isValidDepth() [6/6]

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

◆ 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 深度,
OutputArray 输出3D仿射变换矩阵,尺寸为\(3 \times 4\),形式如下,
double depth_factor = 1000.0 )
Python
cv.rgbd.rescaleDepth(in_, depth[, out[, depth_factor]]) -> 输出3D仿射变换矩阵,尺寸为\(3 \times 4\),形式如下

#include <opencv2/rgbd/depth.hpp>

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

参数
in深度图像(如果给定为短整型CV_U,则假定深度单位为毫米(如Microsoft Kinect),否则假定单位为米)
深度所需的输出深度类型(浮点或双精度)
输出3D仿射变换矩阵,尺寸为\(3 \times 4\),形式如下重新缩放的浮点深度图像
depth_factor(可选)将深度转换为距离的因子(Kinect传感器默认为1000.0)

◆ warpFrame()

void cv::rgbd::warpFrame ( const Mat & image,
const Mat & 深度,
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类型)
深度深度(depthTo3d函数中使用的类型)
mask使用像素的掩码(CV_8UC1类型),可以为空
Rt将应用于从深度计算出的3D点的变换
cameraMatrix相机矩阵
distCoeff畸变系数
warpedImage扭曲后的图像。
warpedDepth扭曲后的深度。
warpedMask扭曲后的掩码。