c++ - 将pointcloud2数据转换为opencv图像

标签 c++ image opencv point-cloud-library ros

我正在尝试将从 2D 激光扫描仪获得的数据转换为 openCV 图像。在网上搜索这个时,我发现首先我必须将激光扫描数据转换为 pointcloud2,然后将 pointcloud2 转换为 ROS 图像,然后将 ROS 图像转换为 opencv 图像。 目前,我无法访问激光雷达,因此我创建了一个发布假 pointcloud2 数据的节点。但是,我不明白有组织的点云是什么意思。我将高度和宽度参数任意设置为 100,并且还为点分配了任意 RGB 值,我得到了一个 100x100 图像,但我不明白该图像如何表示我的点云数据。 有人可以解释一下吗?

最佳答案

我猜你是用OpenCV和PCL在ubuntu下开发ROS,因为pcl::PointCloud2是ROS点云格式。

有组织的点云定义:http://pointclouds.org/documentation/tutorials/basic_structures.php#basic-structures

我在点云和 OpenCV 图像上做了一些任务,并且总是将点云转换为 OpenCV Mat。所以我可以给你一些建议。

我的开发环境是win8.1下的PCL1.7.2、OpenCV2.4.9、Kinect v2、VS2012。我想将项目点云转换为地平面并将其转换为二维图像(OpenCV Mat),您可以查看我的另一个解决方案herehere .

关于c++ - 将pointcloud2数据转换为opencv图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29742955/

相关文章:

c++ - CMAKE 找到包但不链接库

opencv - 使用cuda Npp颜色转换功能时的npp步错误

c++ - 在 C++ 中从 vector 中删除元素

c++ - 在 C++ 中放松 void * 转换

java - 从 URL 加载图像问题

Java将文本放置到图像上不显示

c++ - 除以 OpenCV Mat 会产生意想不到的结果

c++ - 从 mfc、sdi 中的对话框类访问文档文件

c++ - 将可被数字整除的数字插入 vector 中

python - 栅格写入 GeoTiff 时缺少空间引用