PCL提供节约一点云的值为一个PNG图像文件的可能方案。显然,这只能用有序的点云来完成,因为生成的图像的行和列将与点云的对应完全一致。例如,如果你从一个传感器Kinect或Xtion的点云,你可以用这个来检索640x480 RGB图像匹配的点云。

就是将点云文件PCD保存成PNG文件,程序如下

#include <pcl/io/pcd_io.h>
#include <pcl/io/png_io.h> int
main(int argc, char** argv)
{
// 创建点云对象
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>); // 读取点云文件
if (pcl::io::loadPCDFile<pcl::PointXYZRGB>(argv[], *cloud) != )
{
return -;
} // 保存图片,(必须为有序点云)
pcl::io::savePNGFile("output.png", *cloud, "rgb");
}

那么这里的实验结果是根据我之前使用的用kinect获得的点云数据,他的点云可视化效果如下

保存为PNG的结果为

如果省略参数,函数将默认保存RGB域。

(2)计算点云重心

点云的重心是一个点坐标,计算出云中所有点的平均值。你可以说它是“质量中心”,它对于某些算法有多种用途。如果你想计算一个聚集的物体的实际重心,记住,传感器没有检索到从相机中相反的一面,就像被前面板遮挡的背面,或者里面的。只有面对相机表面的一部分。

#include <pcl/io/pcd_io.h>
#include <pcl/common/centroid.h> #include <iostream> int
main(int argc, char** argv)
{
// 创建点云的对象
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 读取点云
if (pcl::io::loadPCDFile<pcl::PointXYZ>(argv[], *cloud) != )
{
return -;
} // 创建存储点云重心的对象
Eigen::Vector4f centroid; pcl::compute3DCentroid(*cloud, centroid); std::cout << "The XYZ coordinates of the centroid are: ("
<< centroid[] << ", "
<< centroid[] << ", "
<< centroid[] << ")." << std::endl;
}

这样就可以计算出点云的XYZ三个轴的重心的坐标值

简单的程序演示,大神请忽略,

微信公众号号可扫描二维码一起共同学习交流

PCL的PNG文件和计算点云重心的更多相关文章

  1. CUDA 编程实例:计算点云法线

    程序参考文章:http://blog.csdn.net/gamesdev/article/details/17535755  程序优化2 简介:CUDA ,MPI,Hadoop都是并行运算的工具.CU ...

  2. 向PCD文件写入点云数据

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=83 本小节我们学习如何向PCD文件写入点云数据. 代码 章例2文件夹中,打开 ...

  3. 1T文件夹 - 微云

    1T文件夹 - 微云 1T文件夹

  4. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  5. 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手

    关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手   本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...

  6. Redis 数据恢复方法,redis-port 工具将自建 redis 的 rdb文件同步到云数据库

    1. Redis 恢复的机制 如果只配置 AOF ,重启时加载 AOF 文件恢复数据: 如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据: 如果只配置 RDB,启动是将加载 d ...

  7. 微信小程序存放视频文件到阿里云用到算法js脚本文件

           peterhuang007/weixinFileToaliyun: 微信小程序存放视频文件到阿里云用到算法js脚本文件 https://github.com/peterhuang007/ ...

  8. .NET CORE上传文件到码云仓库【搭建自己的图床】

    .NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人 ...

  9. Window、Ubuntu传输文件到阿里云服务器

    Ubuntu传输文件到阿里云服务器 scp -r file(ubuntu的文件) root(用户名)@xx.xx.xx.xx(公网ip):/home/(目标文件夹) Window传输文件到阿里云服务器 ...

随机推荐

  1. 关于iReport-5.6.0之前版本 “无法启动”或者“一开就关闭”的 某些原因

    在经过Google搜索后.外国的大神说: We don't support Java 8 right now. Support will be added in next versions. 大概意思 ...

  2. 修改PS1变量

    PS1='\[\e[7;46m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ ' from: http://profes ...

  3. 【Unity】2.5 场景视图(Scene)

    分类:Unity.C#.VS2015 创建日期:2016-03-29 一.场景视图(Scene View)导航 场景视图 (Scene View) 是你的交互式沙箱.你可以使用场景视图 (Scene ...

  4. iOS7隐藏状态栏 status Bar

    转自:http://blog.csdn.net/dqjyong/article/details/17896145 IOS7中,不仅应用的风格有一定的变化,状态栏变化比较大,我们可以看到UIVIEWCO ...

  5. node webkit(nw.js) 设置自动更新

    原理:把更新的文件放在服务器上,设置一个客户端版本号,每次打开客户端的时候,通过接口获取服务器上的版本,如果高于本地的版本就下载服务器上的代码,低于或等于就不更新 <script> var ...

  6. python中包含UTF-8编码中文的列表或字典的输出

    在python 下面一个包含中文字符串的列表(list)或字典,直接使用print会出现以下的结果: >>> dict = {"asdf": "我们的p ...

  7. zabbix 实现对服务器的负载监控

    # grep Include /etc/zabbix/zabbix_agentd.conf ### Option: Include # Include= Include=/etc/zabbix/zab ...

  8. angular学习笔记(三十)-指令(3)-templateUrl

    这篇主要介绍指令中的templateUrl属性: templateUrl属性值是一个url路径,路径指向一个html模板,html模板会填充(或替换)指令内容: 比如上一篇文章里的案例,我们把原来的t ...

  9. 谷歌Chrome浏览器小于12px字号显示的BUG

    webkit的私有属性:html{-webkit-text-size-adjust:none;}

  10. 【硅谷问道】Chris Lattner 访谈录(下)

    [硅谷问道]Chris Lattner 访谈录(下) Chris Lattner 访谈录(下) 话题 Swift 在 Server 和操作系统方面有着怎样的雄心抱负? Swift 与 Objectiv ...