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

PCL截取ROI

输入一个点云区域,输入ROI的X,Y,Z值,确定ROI区域,单列一个显示的函数将ROI区域显示出来,X,Y,X的最大最小值写成定值。

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h> // 用于加载PCD文件
#include <pcl/visualization/pcl_visualizer.h> // 用于点云可视化// 显示指定ROI区域内的点云
void displayROI(const pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud,float x_min, float x_max,float y_min, float y_max,float z_min, float z_max) {// 创建一个新的点云对象来存储ROI内的点pcl::PointCloud<pcl::PointXYZ>::Ptr roi_cloud(new pcl::PointCloud<pcl::PointXYZ>());// 筛选符合ROI条件的点for (const auto& point : *cloud) {if (point.x >= x_min && point.x <= x_max &&point.y >= y_min && point.y <= y_max &&point.z >= z_min && point.z <= z_max) {roi_cloud->push_back(point); // 将符合条件的点添加到ROI点云中}}// 创建一个PCL可视化对象pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));viewer->setBackgroundColor(0, 0, 0); // 设置背景颜色为黑色viewer->addPointCloud<pcl::PointXYZ>(roi_cloud, "roi_cloud"); // 添加点云到可视化对象viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "roi_cloud"); // 设置点云大小viewer->addCoordinateSystem(1.0); // 添加坐标系viewer->initCameraParameters(); // 初始化相机参数// 启动可视化窗口while (!viewer->wasStopped()) {viewer->spinOnce(100); // 更新可视化窗口}
}int main() {// 加载点云数据pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());if (pcl::io::loadPCDFile<pcl::PointXYZ>("Surface.pcd", *cloud) == -1) { // 替换为你的点云文件路径PCL_ERROR("Couldn't read file\n"); // 输出错误信息return (-1);}// 定义ROI的边界值float x_min = 1539.59, x_max = 1573.81;float y_min = 284.274, y_max = 302.807;float z_min = -104.304, z_max = -92.674;// 调用函数显示ROI内的点云displayROI(cloud, x_min, x_max, y_min, y_max, z_min, z_max);return 0;
}

运行成功


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

相关文章:

  • 【362】基于springboot的在线租房和招聘平台
  • 大数据新视界 -- 大数据大厂之经典案例解析:电商企业如何靠 Impala性能优化逆袭(上)(9/30)
  • 遥测终端机RTU产品如何选型和配置
  • 5G NR物理层|5G PHY层概述
  • electron 中 contextBridge 作用
  • 如何处理vue项目中的错误
  • 123456789
  • CORS(跨域资源共享)和SOP(同源策略)
  • C++从零到满绩——命名空间、输入输出and缺省参数
  • 架构师:如何提高web网站的请求并发响应量?
  • 高速电机精确控制
  • kafka+zookeeper的搭建
  • 【笔记】变压器-热损耗-频响曲线推导 - 04 额定功率处损耗特性
  • 【jmeter】jmeter的线程组功能的详细介绍
  • lua入门教程:ipairs
  • JMM内存模型详解
  • 【wxWidgets GUI设计教程 - 高级布局与窗口管理】
  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • ubuntu18.04 安装与卸载NCCL conda环境安装PaddlePaddle
  • 21-Terms 不正确的案例
  • 创新实践:基于边缘智能+扣子的智慧婴儿监控解决方案
  • 面向对象设计OOD
  • Android 解决Java和Kotlin JDK编译版本不一致异常
  • Jest项目实战(6):搭建文档网站
  • Java 抽象类 详解
  • Javascript常见数据结构及其应用场景