质心计算公式

质心指的是质量的中心,认为是物体质量集中于此点的假想点。
通常物体质心坐标PcP_cPc​计算公式如下:

Pc=1M∑i=0nmiriP_c = \frac{1}{M} \sum_{i=0}^n m_ir_iPc​=M1​i=0∑n​mi​ri​

其中,ri=(xi,yi,zi),i=1,2,...,nr_i=(x_i,y_i,z_i),i=1,2,...,nri​=(xi​,yi​,zi​),i=1,2,...,n为各质点的坐标,mim_imi​为质点对应的质量。

PCL函数原理

计算点云质心时,令上述公式中的 mi=1m_i=1mi​=1即可,则点云质心坐标计算公式如下:
Pc=1n(∑i=0nxi,∑i=0nyi,∑i=0nzi)P_c = \frac{1}{n} (\sum_{i=0}^n x_i , \sum_{i=0}^n y_i , \sum_{i=0}^n z_i ) Pc​=n1​(i=0∑n​xi​,i=0∑n​yi​,i=0∑n​zi​)

PLC提供了现有的函数可供调用:

Eigen::Vector4f centroid;  //质心
pcl::compute3DCentroid(*cloud_smoothed,centroid); // 计算质心

该函数的原理即是使用上述公式计算点云质心坐标,接下来通过代码进行验证。

代码

#include <iostream>
#include <string>
#include <Eigen/Core>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/common/transforms.h>using namespace std;
typedef pcl::PointXYZ PointT;int main(int argc, char **argv)
{// 导入点云pcl::PointCloud<PointT>::Ptr cloud(new pcl::PointCloud<PointT>);if (pcl::io::loadPLYFile("bunny.ply", *cloud) == -1) { // 读取.ply文件cerr << "can't read file bunny.ply" << endl;return -1;}// PCL函数计算质心Eigen::Vector4f centroid;                   // 质心pcl::compute3DCentroid(*cloud, centroid);  // 齐次坐标,(c0,c1,c2,1)// 按公式计算质心PointT p_c;p_c.x = 0; p_c.y = 0; p_c.z = 0;for (auto p : cloud->points) {p_c.x += p.x;p_c.y += p.y;p_c.z += p.z;}p_c.x /= cloud->points.size();p_c.y /= cloud->points.size();p_c.z /= cloud->points.size();// 结果对比cout << "pcl::compute3DCentroid(*cloud, centroid)计算点云质心结果:" << endl << "\t" << centroid(0) << "\t" << centroid(1) << "\t" << centroid(2) << "\t" << centroid(3) << endl;cout << "按照公式计算点云质心结果:" << endl << "\t" << p_c.x << "\t" << p_c.y << "\t" << p_c.z << endl;getchar();return 0;
}

结果

备注

点云文件可从博客:PCL+VS2015实现点云可视化中提供的链接下载。

pcl::compute3DCentroid()计算质心算法原理相关推荐

  1. PCL之计算点云质心---pcl::compute3DCentroid()

    质心计算公式 质心指的是质量的中心,认为是物体质量集中于此点的假想点. 通常物体质心坐标计算公式如下: 其中,为各质点的坐标,为质点对应的质量. PCL函数原理 计算点云质心时,令上述公式中的即可,则 ...

  2. K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点

    分类知识   分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中.机器学习中常见的分类算法有:SVM(支持向量机).KNN(最邻近法).Decision Tree( ...

  3. 欧几里得最短距离公式_推荐算法原理(二)欧几里得距离计算物品间相似度

    在上篇文章中介绍了如何利用余弦定理计算两个物品间的相似度:KiKlaus:推荐算法原理(一)余弦定理计算物品间相似度​zhuanlan.zhihu.com 这种计算方法虽然简单,但是在衡量空间两个向量 ...

  4. 平面点云的轮廓线计算-alpha shapes算法原理和实现

    alpha shape算法又称为滚球法,是一种提取边界点的算法.跟凸壳提取相比,alpha shape算法能够了凹包情形,且对多个点云时 能勾勒出多个边界线,这是他的优势. 研究alpha shape ...

  5. JAVA 三点定位相关计算(二,三角形质心算法)

    三角形质心算法 三圆为R1,R2,R3,圆心坐标(X1,Y1),(X2,Y2),(X3,Y3),半径分别为r1,r2,r3. 相关链接 链接: JAVA 三点定位相关计算(一,两圆关系). 1,R1, ...

  6. PCL点云处理算法目录

    一.点云配准 PCL中的点云配准方法:https://www.sohu.com/a/321034987_715754 点云配准资源汇总:https://mp.weixin.qq.com/s/rj090 ...

  7. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路

    https://www.toutiao.com/a6641916717624721933/ 2019-01-03 08:00:00 K-means算法是使用得最为广泛的一个算法,本文将介绍K-mean ...

  8. 输入参数的数目不足_机器学习算法—KMEANS算法原理及阿里云PAI平台算法模块参数说明...

    概述: KMEANS算法又被成为K均值算法,是一种常用的聚类算法,由于不需要根据给定的训练集训练模型因此是一种无监督学习算法.其本质是根据选定的参数K将数据分类成K类,在聚类过程中从单一样本开始通过不 ...

  9. 机器学习-聚类之K均值(K-means)算法原理及实战

    K-means算法 前言 机器学习方法主要分为监督学习和非监督学习两种.监督学习方法是在样本标签类别已知的情况下进行的,可以统计出各类样本的概率分布.特征空间分布区域等描述量,然后利用这些参数进行分类 ...

最新文章

  1. python语音识别终极指南
  2. linux释放内存脚本
  3. 富国银行是如何为公有云转型做准备的
  4. 如何检查jQuery中是否已选中复选框?
  5. 服务总线yali测试_满足吉利要求的车载总线测试服务
  6. mysql数据库检表_MYSQL数据库检查数据表和修复数据表
  7. fatal: unable to access ‘https://github.comxxxxxxxxxxx‘: Failed to connect to xxxxxxxxxxxxx
  8. 六、Web服务器——FilterListener 学习笔记
  9. nginx_keepalived配置(转载保存)
  10. 【今日CS 视觉论文速览】Wed, 30 Jan 2019
  11. 飞桨博士会第四期,中国深度学习技术俱乐部诚邀您加入
  12. 关于Assembly.CreateInstance中被启动对象读取配置文件的问题
  13. [FAQ03776] [Power]关于RTC唤醒系统问题
  14. 微信订阅号简易开发——小白攻略图文版
  15. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码
  16. ubuntu系统安装TIM,QQ,微信,迅雷,百度网盘
  17. 【SV中local::的用法】
  18. 工业通讯桥接器——用于PLC、数控、注塑机等设备数据采集
  19. Java8两个list集合合并成一个list集合
  20. 训练模型中常见错误解决方案

热门文章

  1. 硬件:宽带猫(光猫)的基础知识
  2. asixs 响应慢_大智慧技术指标快捷键一览!转的!|家居理财 - 鱼叉论坛 - powered by php......
  3. qt 宋体 linux,QT 使用自己的字库
  4. php不建议用织梦cms,你不得不知的织梦cms安全性设置常识 - DeDecms
  5. 织梦CMS系统正式收费:5800元 站长们真的慌了
  6. 江苏省一级计算机ms,计算机一级六大MS题型介绍
  7. python网上下载视频,音乐
  8. illumina 二代测序原理及过程
  9. Electron 打包Mac安装包代码签名问题解决方案
  10. 发散性思维对养蜂技术的提高作用