图像处理技术之八:点云图、深度图像

深度图像

  • 也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像

  • 获取方法有:激光雷达深度成像法、计算机立体双目视觉成像、坐标测量机法、莫尔条纹法、结构光法

点云

  • 当一束激光照射到物体表面时,所反射的激光会携带方位距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量激光点,因而就可形成激光点云。点云格式有*.las ;*.pcd; *.txt等。

深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算深度图像

 

RGB-D 图像中的rgb图片提供了像素坐标系下的x,y坐标,而深度图直接提供了相机坐标系下的Z ZZ坐标,也就是相机与点的距离。

根据 RGB-D 图像的信息和相机的内参,可以计算出任何一个像素点在相机坐标系下的坐标。

根据 RGB-D 图像的信息和相机的内参与外参,可以计算出任何一个像素点在世界坐标系下的坐标。

相机视野范围内,相机坐标系下的障碍物点的坐标,就是点云传感器数据,也就是相机坐标系下的点云数据。点云传感器数据可以根据 RGB-D 图像提供的坐标与相机内参算出来。

所有世界坐标系下的障碍物点的坐标,就是点云地图数据,也就是世界坐标系下的点云数据。点云地图数据可以根据RGB-D 图像提供的坐标与相机内参和外参算出来。

https://blog.csdn.net/go_clever_boy/article/details/102295371?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/ff_xun/article/details/85318093

 

参考资料
《机器人学、机器视觉与控制》

https://www.cnblogs.com/gaoxiang12/p/4652478.html

http://www.cnblogs.com/cv-pr/p/5719350.html

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要使用ROS C++编写程序来订阅和获取Realsense D455相机的图像深度图和云图,首先需要安装ROS和Realsense相机的驱动程序,并在ROS工作空间中创建一个ROS包。 1. 安装ROS和Realsense相机驱动: - 安装ROS:根据官方文档选择合适的ROS版本进行安装。 - 安装Realsense相机驱动:根据Realsense官方文档安装相应的驱动程序,并确保驱动程序与ROS版本兼容。 2. 创建ROS包: 在ROS工作空间的src目录下创建一个新的ROS包,命名为realsense_d455,并使用catkin_make进行编译。 3. 编写订阅图像深度图和云图的ROS节: 在realsense_d455包中的src目录下创建一个新的.cpp文件,例如realsense_subscriber.cpp,编写如下ROS节的代码: ```cpp #include <ros/ros.h> #include <sensor_msgs/Image.h> #include <sensor_msgs/PointCloud2.h> #include <sensor_msgs/PointCloud.h> // 图像回调函数 void imageCallback(const sensor_msgs::ImageConstPtr& msg) { // 在这里处理获取到的图像数据 // ... } // 深度图回调函数 void depthCallback(const sensor_msgs::ImageConstPtr& msg) { // 在这里处理获取到的深度图数据 // ... } // 云图回调函数 void cloudCallback(const sensor_msgs::PointCloud2ConstPtr& msg) { // 在这里处理获取到的云图数据 // ... } int main(int argc, char** argv) { ros::init(argc, argv, "realsense_subscriber"); ros::NodeHandle nh; // 创建订阅器 ros::Subscriber image_sub = nh.subscribe("/camera/image", 10, imageCallback); ros::Subscriber depth_sub = nh.subscribe("/camera/depth", 10, depthCallback); ros::Subscriber cloud_sub = nh.subscribe("/camera/point_cloud", 10, cloudCallback); ros::spin(); // 循环监听话题 return 0; } ``` 4. 编译和运行: 在realsense_d455包的根目录下使用catkin_make命令进行编译。编译完成后,使用ROS launch文件启动程序。 综上所述,通过创建一个ROS节并订阅相应的话题,可以在ROS C++中实现订阅和获取Realsense D455相机的图像深度图和云图数据。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隨意的風

如果你觉得有帮助,期待你的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值