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

2.PCL 对于点云的读写

文章目录


在这里插入图片描述

#include <iostream>
#include <pcl/io/pcd_io.h>     // 用于读写 PCD 文件
#include <pcl/io/ply_io.h>     // 用于读写 PLY 文件
#include <pcl/point_types.h>   // 点类型定义// 使用 PointXYZ 类型作为点云中的点类型
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> PointCloud;int main()
{// 创建点云指针PointCloud::Ptr cloud(new PointCloud);// 1. 读取 PCD 或 PLY 文件std::string filename = "D:/PCL/monkey.ply";  // 使用正斜杠或双反斜杠// 自动识别文件格式并读取if (filename.substr(filename.find_last_of(".") + 1) == "pcd"){if (pcl::io::loadPCDFile(filename, *cloud) == -1){PCL_ERROR("Couldn't read file %s \n", filename.c_str());return (-1);}}else if (filename.substr(filename.find_last_of(".") + 1) == "ply"){if (pcl::io::loadPLYFile(filename, *cloud) == -1){PCL_ERROR("Couldn't read file %s \n", filename.c_str());return (-1);}}else{std::cerr << "Unsupported file format!" << std::endl;return -1;}std::cout << "Loaded "<< cloud->width * cloud->height<< " data points from " << filename << std::endl;//// 2. 打印点云信息(可选)// for (const auto& point : *cloud)// {//     std::cout << "Point: " << point.x << ", " << point.y << ", " << point.z << std::endl;// }// 3. 保存 PCD 或 PLY 文件std::string output_filename = "output_cloud.pcd"; // 你可以改为 .plyif (output_filename.substr(output_filename.find_last_of(".") + 1) == "pcd"){pcl::io::savePCDFile(output_filename, *cloud);}else if (output_filename.substr(output_filename.find_last_of(".") + 1) == "ply"){pcl::io::savePLYFile(output_filename, *cloud);}else{std::cerr << "Unsupported output file format!" << std::endl;return -1;}std::cout << "Saved "<< cloud->width * cloud->height<< " data points to " << output_filename << std::endl;return 0;
}
http://www.dtcms.com/a/283497.html

相关文章:

  • 手写和印刷体混合怎么识别
  • ESP32——基于idf框架开发GPIO设备
  • 高性能架构模式——高性能NoSQL
  • 如何打造全场景数字化OA办公平台?
  • 网络(数据库1)
  • oracle2kingbase的字段长度问题
  • STM32外设介绍4(ADC)
  • Windows11怎样禁止应用开机启动
  • 评估遥感云雾浓度的无参化指标(适用于其它合成雾的场景)
  • 【JVM】内存分配与回收原则
  • leetcode 3201. 找出有效子序列的最大长度 I II
  • 演示数据库操作
  • 测试学习之——Pytest Day2
  • 《十万线段绘乾坤:Canvas离屏渲染深度剖析》
  • 低代码深度切入制造业需求的实践路径
  • 在 CentOS 8 上彻底卸载 Kubernetes(k8s)
  • 每日钉钉API探索:requestAuthCode网页应用(H5微应用)免登授权
  • 【leetcode】1422. 分割字符串的最大得分
  • 创建SprngBoot项目的四种方式
  • FreeRTOS中断管理STM32
  • 【Java】【力扣】20.有效的括号
  • 基于迁移学习的培养基配方开发方法
  • XSS-LABS的Level1-8
  • Python —— 真题三
  • NumPy 详解
  • 【static 修饰局部变量、全局变量、函数】
  • Swift6.0 - 5、基本运算符
  • 账户和组管理
  • JavaEE——死锁
  • PowerBI实现仅在需要图表时显示图表