当前位置: 首页 > news >正文

PCL-点云质心识别

问题描述:

最近又重操旧业开始我的点云任务了,增加点云功能模块

代码:

包含的头文件和函数,函数输入参数是点云

#include <iostream>
#include <Eigen/Core>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/common/transforms.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <thread>
#include <pcl/common/angles.h> // for pcl::deg2rad
#include <pcl/console/parse.h>
#include <pcl/point_cloud.h>
void center(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud){// 方式1:利用PCL函数计算质心Eigen::Vector4f centroid;					// 质心pcl::compute3DCentroid(*cloud, centroid);	// 齐次坐标,(c0,c1,c2,1)// 方式2:利用公式计算质心pcl::PointXYZ 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 函数计算点云质心结果:(" << centroid(0)<<","<<centroid(1)<<","<<centroid(2)<<")" << endl;cout << "按照公式计算点云质心结果:" << p_c<< endl;p_c.x = centroid(0);p_c.y = centroid(1);p_c.z = centroid(2);// 可视化pcl::PointCloud<pcl::PointXYZ> ::Ptr center(new pcl::PointCloud<pcl::PointXYZ> );center->points.push_back(p_c);pcl::visualization::PCLVisualizer pclViewer("center point");pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>Color(cloud,255,255,255);pclViewer.addPointCloud(cloud,Color,"cloud");pclViewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1,"cloud");pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>Color_center(center,0,0,255);pclViewer.addPointCloud(center,Color_center,"center");pclViewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,5,"center");//pclViewer.addCoordinateSystem();pclViewer.setBackgroundColor(0,0,0);pclViewer.initCameraParameters();while (!pclViewer.wasStopped()){pclViewer.spinOnce(100);std::this_thread::sleep_for(100ms);}
}

效果:


http://www.mrgr.cn/news/45344.html

相关文章:

  • 机器学习——强化学习与深度强化学习
  • JioNLP:一款实用的中文NLP预处理工具包
  • gligen安装部署笔记
  • pycharm连接linux服务器需要提前安装ssh服务
  • Collection 框架的结构
  • STM32的时钟复位控制单元(RCU/RCC)技术介绍
  • SpringBoot飘香水果网站:从概念到实现
  • 2024故障测试入门指南!
  • 基于单片机的烧水壶系统设计
  • 如何在VSCode上运行C/C++代码
  • 宠物咖啡馆数字化解决方案:基于SpringBoot的实现
  • 2024下《信息系统运行管理员》案例简答题,刷这些就够了!
  • Android 无Bug版 多语言设计方案!
  • redis 连接池
  • 深度学习模型
  • 数据治理中场战事:按需采购和自如升级成必然
  • 【kubernetes】环境准备及K8S二进制安装【最新最全】
  • 【Centos】系统安装虚拟系统管理器创建虚拟机
  • Maven 父子模块的 pom.xml 文件编写
  • 查找满足条件的行