文章 ID: 000027169 内容类型: 故障排除 上次审核日期: 2021 年 08 月 06 日

如何在 C 中获取摄像头英特尔® 实感™点云#

环境

英特尔® 实感™深度摄像头 D435 英特尔® 实感™深度摄像头 D415

BUILT IN - ARTICLE INTRO SECOND COMPONENT
总结

从英特尔 实感深度摄像头将英特尔 实感点云转换为 PCL 英特尔® 实感™云

说明

我想将点云数据从摄像头英特尔® 实感™ PCD 格式,这是 PCL(点云库)中的常规格式

解决方法

该英特尔® 实感™ SDK 2.0 附带了点云示例程序,但它适用于 C++,大多数示例也一样。 但是,查看少量 C# 样本的代码,他们的脚本在标题#includes(C#中不强制的一些内容)。 因此,C++ 点云代码可能并不难转换为 C# 脚本。
 
在 C# 脚本中尝试 C++ 代码,看看您收到多少错误(如果有)并从现在开始工作。
 
librealsense/示例/pointcloud 在 master ·英特尔®RealSense/librealsense ·GitHub
 
为比较实感 SDK 2.0 中的 C++ 代码与 C# ,可以看到此页面中列出的两种类型的示例:
 
librealsense/示例在大师 ·英特尔®RealSense/librealsense ·GitHub
 
现在,在 PointCloud 类为 C# 调整之前,一个选项是获取摄像头内部属性(如果使用原始深度时,为深度摄像头;如果使用颜色对齐的深度,则用于彩色摄像头),并执行针孔摄像头模型(这是 PointCloud 类在内部执行哪些工作)。从摄像头获得的本质,ppx 和 ppy 在链接中camera_principle_point_x和 y,fx &fy 是camera_focal_length_x和 y。
 
您需要在深度图像中循环每个像素,获取深度值(最高效的是通过深度数据指针),将其乘以深度缩放,并应用链接中给定的 x_3D 和 y_3D 公式。
 
如果有人阅读此文并搞错,C# 当前(大部分)受支持

此处为计算点云在内部使用的方法。

支持 PCGB 英特尔 实感的 PCL 包装器
https://github.com/eMrazSVK/JetsonSLAM/blob/master/pcl_testing.cpp

相关产品

本文适用于 1 产品

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。