pcl加载并显示pcd、ply点云数据文件

  1. pcl加载显示pcd,代码如下:

#include<iostream>
#include<pcl/io/pcd_io.h>
#include<pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

//该函数主要是用来设置窗口背景
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
    viewer.setBackgroundColor(1.0f, 0.5f, 1.0f);
}

int main(int argc, char** argv) {
    //定义指针cloud
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

    //获取文件,成功返回0,失败返回-1
    if (pcl::io::loadPCDFile<pcl::PointXYZ>("C:\\Users\\Carry\\Downloads\\bunny\\bunny\\bunny\\reconstruction\\bun_zipper.pcd", *cloud) == -1) {
        PCL_ERROR("Couldn't read file rabbit.pcd\n");
        return(-1);
    }
    std::cout << cloud->points.size() << std::endl;//输出点云数
    pcl::visualization::CloudViewer viewer("cloud viewer");//设置窗口
    viewer.showCloud(cloud);//cloud指向pcd文件
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    system("pause");
    return 0;
}
  1. pcl加载显示ply,代码如下:

#include<iostream>
#include <pcl/io/ply_io.h>
#include<pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

//该函数主要是用来设置窗口背景
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
    viewer.setBackgroundColor(1.0f, 0.5f, 1.0f);
}

int main(int argc, char** argv) {
    //定义变量
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

    //
    //*打开pcd点云文件
    //C:\\Users\\Carry\\Documents\\rabbit.pcd
    //获取文件,成功返回0,失败返回-1
    if (pcl::io::loadPLYFile<pcl::PointXYZ>("C:\\Users\\Carry\\Downloads\\bunny\\bunny\\bunny\\reconstruction\\bun_zipper.ply", *cloud) == -1) {
        PCL_ERROR("Couldn't read file rabbit.pcd\n");
        return(-1);
    }
    std::cout << cloud->points.size() << std::endl;//输出点云数
    pcl::visualization::CloudViewer viewer("cloud viewer");//设置窗口
    viewer.showCloud(cloud);//cloud指向pcd文件
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    system("pause");
    return 0;
}

上面两断代码只有两处不同:

  1. 加载pcd,头文件为#include<pcl/io/pcd_io.h>;而加载ply,头文件为#include <pcl/io/ply_io.h>。

  1. 获取pcd文件方法是loadPCDFile,包含在<pcl/io/pcd_io.h>;而获取ply文件方法是loadPLYFile,包含在<pcl/io/ply_io.h>。

以上是通过loadPCDFile和loadPLYFile方法加载并显示.pcd和.ply文件。除了以上方法,还可以通过PLYReader与PCDReader方法实现,具体代码可参考以下博客:

https://blog.csdn.net/oMoDao1/article/details/103677140

在调用头文件之前需要安装PCL库,如果需要PCL安装包或者安装PCL有问题,可以参考这篇博客:

https://blog.csdn.net/m0_74195873/article/details/129222111

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值