可视化点云

2023-11-24

我在找到的视差图像上有来自 gpu::reprojectImageTo3D 的 3D 点。我现在想显示这个点云。

如何将找到的点云转换为OpenCV to sensor_msgs/PointCloud2 ?

我不需要发布点云,这仅用于调试可视化。是否可以像使用节点中的图像一样显示它?例如使用pcl?这将是最佳选择,因为我的设备可能无法很好地运行RViz(基于在线阅读)。


我最好的猜测是这样做,然后迭代cv::mat并插入到pcl转换为味精,因为我还没有找到任何可以直接转换的东西。

#include <ros/ros.h>
// point cloud headers
#include <pcl/point_cloud.h>
//Header which contain PCL to ROS and ROS to PCL conversion functions
#include <pcl_conversions/pcl_conversions.h>
//sensor_msgs header for point cloud2
#include <sensor_msgs/PointCloud2.h>
main (int argc, char **argv)
{
    ros::init (argc, argv, "pcl_create");
    ROS_INFO("Started PCL publishing node");
    ros::NodeHandle nh;
    //Creating publisher object for point cloud
    ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2> ("pcl_output", 1);
    //Creating a cloud object
    pcl::PointCloud<pcl::PointXYZ> cloud;
    //Creating a sensor_msg of point cloud
    sensor_msgs::PointCloud2 output;
    //Insert cloud data
    cloud.width  = 50000;
    cloud.height = 2;
    cloud.points.resize(cloud.width * cloud.height);
    //Insert random points on the clouds
    for (size_t i = 0; i < cloud.points.size (); ++i)
    {
        cloud.points[i].x = 512 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].y = 512 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].z = 512 * rand () / (RAND_MAX + 1.0f);
    }
    //Convert the cloud to ROS message
    pcl::toROSMsg(cloud, output);
    output.header.frame_id = "point_cloud";
    ros::Rate loop_rate(1);
    while (ros::ok())
    {
        //publishing point cloud data
        pcl_pub.publish(output);
        ros::spinOnce();
        loop_rate.sleep();
    }
    return 0;
}

该代码片段位于apprize.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可视化点云 的相关文章

随机推荐

  • 在 Oracle 中定义局部变量的最简单方法是什么?

    在SQL Server中 我可以像这样定义局部变量 declare id number 1000 select from tbl A where id id select from tbl B where id id 非常方便 我尝试做同样
  • 为什么VPC中的AWS lambda函数有时会超时,有时会正常工作?

    我在 VPC 中有一些 lambda 函数 其中一些需要 Internet 才能工作 所以我添加了一个 NAT 实例 t2 micro 问题是我有一些函数有时可以工作 有时会超时 例如 调用 FB API 的函数 80 的时间工作 20 的
  • 在 Vim 中运行 Python 代码

    我正在使用 Vim 编写 Python 代码 每次我想运行代码时 我都会在 Vim 中输入以下内容 w python 这让人沮丧 所以我一直在寻找一种更快的方法来在 Vim 中运行 Python 代码 也许从终端执行 Python 脚本 我
  • 如何抑制 C# 中的 thread.abort() 错误?

    当我的程序加载时 我在后台线程上显示启动屏幕 一旦加载 我将中止线程 因为它的唯一目的是显示 正在加载 启动画面 我的问题是 当中止线程时 它会抛出ThreadAbortException用户只需单击 继续 即可 我该如何处理这个问题 我试
  • 从文本文件中获取非空白行的总数?

    我在用 File ReadLines file txt Count 查找文件中的总行数 我怎样才能做到这一点 但忽略所有空白行 您可以使用String IsNullOrWhiteSpace方法与Count File ReadLines fi
  • 在控制台中查看 TFS 变更集详细信息

    我正在使用 TFS 并且想要查看包含多个文件中的更改的变更集上的所有更改 在 GUI 中查看此内容效率不高 因为我必须打开每个文件 我想做的是告诉控制台上的 TFS 向我显示对变更集编号 777 中的所有文件的所有更改 是否有命令可以执行此
  • 如何输入最初为 None 但保证获得值的提示变量

    我有一个类变量 如下所示 class MyClass def init self self value MyOtherClass None None self initialize value def initialize value se
  • Scala 方法调用中括号的规则是什么?

    toList 不是一个将某些内容转换为 List 的方法吗 如果是的话为什么我不能使用括号呢 我一定在这里遗漏了一些更基本的东西 这是示例 val l Array 1 2 3 toList works fine val l Array 1
  • 如何让 mechanize 等待网页“完全”加载?

    我想抓取一些动态加载其组件的网页 该页面有一个加载脚本 在浏览器中输入 URL 后 3 5 秒我就可以看到完整的页面 问题是 当我打电话时br open URL 响应是 0 秒处的网页 3 5 秒后 HTML 我想要的 和结果之间存在差异b
  • 如何让椭圆闪烁?

    我正在尝试在 WPF 中制作自定义控件 我希望它能够模拟 LED 闪烁的行为 该控件有三种状态 开 关和闪烁 我知道如何通过后面的代码设置打开和关闭 但是这个 WPF 动画东西简直让我发疯 我无法让任何东西动画化 该计划是拥有一个称为状态的
  • Numpy 矩阵旋转任意度数

    我尝试找到一种方法 在包含 RGB 等三个波段但值大于 0 255 的矩阵上应用任意度数的矩阵旋转 这是我的数据示例 其形状为 100 100 3 847 5 877 886 821 5 856 5 898 850 883 969 5 88
  • 我可以显式导入 dom 类型吗?

    按照惯例 开发人员会在全球范围内包含全局 dom 类型并在全球范围内使用它们 compilerOptions lib dom 是否可以显式使用 dom 类型 就像是 import MessagePort HTMLElement from d
  • 如何在 Android 中阅读 pdf

    我想在android 中阅读PDF 文件 我将 PDF 文件放在 asset 文件夹中 我如何从那里读取 PDF 文件 PDF阅读器链接 我已经检查了上面的链接 但它对我不起作用 它给我一个错误 说找不到活动 我还想在WebView中打开P
  • 作为类成员的灵活数组

    海湾合作委员会 G 9 这段代码 class foo int bar 111 123 产生有关灵活数组的初始值设定项的错误 但这一个 class foo int bar 2 111 123 正常编译 有什么解决方法可以不计算我输入的值吗 与
  • Jackson - 动态抑制属性的序列化(写入)

    我正在尝试使用 Jackson 将 Tomcat jersey 中的 java 对象转换为 JSON 对象 并希望动态抑制某些属性的序列化 写入 我可以使用 JsonIgnore 但我想在运行时做出忽略决定 有任何想法吗 因此 作为下面的示
  • Spring Zuul API 网关,在同一请求中使用 Spring Session / Redis 进行身份验证和路由

    在过去的几天里 我一直在苦苦寻找如何做到这一点 最后决定承认失败并寻求帮助 拜托 我遵循 Dave Syer 博士关于 Angular 和 Spring Security 的教程 特别是 Zuul 代理作为 api 网关以及将 Spring
  • toString():用于调试还是用于人类?

    class Address private enum Component NUMBER STREET STATE COUNTRY private Map
  • 真正的随机C#生成器

    Random ran new Random byte tmp byte ran Next 10 这段代码有替代方案吗 它似乎没有完全随机的行为 发生这种情况的原因有多种 一个常见的问题是创建多个实例Random程序中的类 当使用Random
  • 无法从 Visual Studio 2015 连接到 mysql

    所以我已经花了大约 2 天的时间尝试解决这个问题 我已经在我的工作场所电脑上成功修复了这个问题 但无法让它在我的家庭电脑上工作 我读过十几篇 SO 文章和 Oracle 论坛文章等等 但它仍然不起作用 我有用于 Visual Studio
  • 可视化点云

    我在找到的视差图像上有来自 gpu reprojectImageTo3D 的 3D 点 我现在想显示这个点云 如何将找到的点云转换为OpenCV to sensor msgs PointCloud2 我不需要发布点云 这仅用于调试可视化 是