点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 9295|回复: 3

从深度图和图像生成点云数据

[复制链接]
发表于 2020-9-26 12:18:18 | 显示全部楼层 |阅读模式
本帖最后由 mypcl 于 2020-9-26 12:36 编辑

目的:有时候为了提高记录数据的帧率,会先存储图像和深度图,之后在处理时,将图像转化为点云数据。这样可以节省usb带宽。下面是我搜索的一些,将深度图和图像转为点云的素材:
https://www.mrpt.org/tutorials/programming/miscellaneous/generating_3d_point_clouds_from_rgb_d_observations/
输入:rgb和depth传感器的相对位姿,以及两个传感器对应的相机内参数,rgb和depth图像
输出:有序彩色点云数据
matlab从深度图转化为有序点云源码
http://rgbd-dataset.cs.washington.edu/software.html  
Python代码
https://stackoverflow.com/questions/52319922/how-can-i-convert-rgb-depth-image-to-point-cloud
相机模型参考
https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0
mrpt库的c++代码实现http://mrpt.sourceforge.net/reference/1.0.0/classmrpt_1_1slam_1_1_c_observation3_d_range_scan.html


回复

使用道具 举报

 楼主| 发表于 2020-9-27 18:32:50 | 显示全部楼层
点云库pcl里面也有相应的一些实现:
类pcl::Grabber的子类,例如pcl::OpenNIGrabber,其他的grabber都是对应不同设备的驱动的封装。这些子类,里面都提供了相应的转换函数,不过定义为protected的函数,不能直接调用。
如以下转换函数:
  1. pcl::PointCloud< pcl::PointXYZ >::Ptr         convertToXYZPointCloud (const openni_wrapper::DepthImage::Ptr &depth) const
  2.         Convert a Depth image to a pcl::PointCloud<pcl::PointXYZ> More...

  3. template<typename PointT >
  4. pcl::PointCloud< PointT >::Ptr         convertToXYZRGBPointCloud (const openni_wrapper::Image::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image) const
  5.         Convert a Depth + RGB image pair to a pcl::PointCloud<PointT> More...

  6. pcl::PointCloud< pcl::PointXYZI >::Ptr         convertToXYZIPointCloud (const openni_wrapper::IRImage::Ptr &image, const openni_wrapper::DepthImage::Ptr &depth_image) const
  7.         Convert a Depth + Intensity image pair to a pcl::PointCloud<pcl::PointXYZI> More...
复制代码
不同的子类,可能提供的接口有不同,但大致都类似,具体实现也类似。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-30 17:23:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-15 15:45:43 | 显示全部楼层
在kinect 2 sdk中,也提供相应的类CoordinateMapper
https://homes.cs.washington.edu/~edzhang/tutorials/kinect2/kinect3.html
https://pterneas.com/2014/05/06/understanding-kinect-coordinate-mapping/
这个类很方便,但需要在线使用,好像无法离线使用。
A problem about ICooradinateMapper in Kinect v2.0, How to save it and process offline.
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-4-20 02:38 , Processed in 1.700302 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表