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

PCL uniform_sampling均匀采样抽稀

目录

  • 一、概述
  • 二、代码
  • 三、结果

一、概述

  均匀采样抽稀点云。

二、代码

uniform_sampling.cpp

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/keypoints/uniform_sampling.h>
#include <pcl/visualization/pcl_visualizer.h>using namespace std;// 可视化两个点云
void twoPointCloudViewer(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud1, pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud2)
{// 输出结果到可视化窗口// 创建可视化窗口pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D PointCloud Viewer"));// 设置视口1,显示原始点云int v1;viewer->createViewPort(0.0, 0.0, 0.5, 1.0, v1);  // 左侧窗口viewer->setBackgroundColor(0.0, 0.0, 0.0, v1);  // 黑色背景viewer->addText("cloud1 PointCloud", 10, 10, "vp1_text", v1);  // 标题pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color_handler(cloud1, 0, 255, 0);  // 绿色viewer->addPointCloud(cloud1, cloud_color_handler, "original_cloud", v1);// 设置视口2,显示体素中心点云int v2;viewer->createViewPort(0.5, 0.0, 1.0, 1.0, v2);  // 右侧窗口viewer->setBackgroundColor(0.0, 0.0, 0.0, v2);   // 黑色背景viewer->addText("cloud2 PointCloud", 10, 10, "vp2_text", v2);pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> voxel_center_color_handler(cloud2, 255, 0, 0);  // 红色viewer->addPointCloud(cloud2, voxel_center_color_handler, "2_cloud", v2);// 设置点的大小viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "original_cloud", v1);viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 4, "2_cloud", v2);// 添加坐标系/* viewer->addCoordinateSystem(0.1);viewer->initCameraParameters();*/// 可视化循环while (!viewer->wasStopped()){viewer->spinOnce(100);}}int main()
{// 原始点云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::io::loadPCDFile("dragon.pcd", *cloud); // 均匀采样pcl::UniformSampling<pcl::PointXYZ> uf;uf.setInputCloud(cloud);uf.setRadiusSearch(0.03);                               // 体素块大小pcl::PointCloud<pcl::PointXYZ>::Ptr filtered(new pcl::PointCloud<pcl::PointXYZ>);uf.filter(*filtered);            // 结果存入新点云twoPointCloudViewer(cloud, filtered);return 0;
}

三、结果

在这里插入图片描述


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

相关文章:

  • 【React】react项目中的redux使用
  • 基于SpringBoot+Vue的高校实习管理系统
  • 【机器学习】ID3、C4.5、CART 算法
  • Linux oracle数据库静默安装
  • 宝塔frp配置
  • 知识付费APP开发指南:基于在线教育系统源码的技术详解
  • 从零开始手写STL库:Unordered_Map
  • SpringBoot教程(安装篇) | Docker Desktop的安装(Windows下的Docker环境)
  • C++入门(2)--引用
  • FreeRTOS 内存管理源码解析
  • 使用VBA快速生成Excel工作表非连续列图片快照
  • 网页篡改防御方法
  • element-plus中el-table固定列fixed失效问题
  • 在LLMs模型中发现人类的记忆特征
  • nodejs 016: javascript语法——解构赋值({ a, b, c } = {})=>{console.log(“Hello“);}
  • linux编辑文件保存退出的实操讲解
  • 基于SpringCloud的微服务架构下安全开发运维准则
  • 微服务Redis解析部署使用全流程
  • Meta Sapiens 人体AI模型
  • 【设计模式】精通高级行为模式:揭秘状态、中介者及其它模式的深层机制