以下是一个简单的PCD文件读取并可视化的例子,使用PCL库和C++语言实现:
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
int main(int argc, char **argv)
{
// 创建点云对象
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
// 读取PCD文件
if (pcl::io::loadPCDFile<pcl::PointXYZ>("../example.pcd", *cloud) == -1)
{
PCL_ERROR("Couldn't read file example.pcd \n");
return (-1);
}
// 可视化点云
pcl::visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloud);
// 等待直到可视化窗口关闭
while (!viewer.wasStopped())
{
}
return (0);
}
在这个例子中,我们首先创建了一个pcl::PointCloud<pcl::PointXYZ>
类型的点云对象cloud
,然后使用pcl::io::loadPCDFile()
函数读取名为example.pcd
的PCD文件,并将其存储到cloud
中。如果读取失败,程序将输出错误信息并返回-1。
接着,我们使用pcl::visualization::CloudViewer
类创建了一个可视化窗口,并使用viewer.showCloud()
函数将点云cloud
显示在窗口中。最后,我们使用一个while
循环等待直到可视化窗口关闭。
可视化结果如下:
需要注意的是,这个例子中使用的是pcl::PointXYZ
类型的点云,如果你的PCD文件中包含其他类型的点云,例如法向量、颜色等信息,需要使用相应的点云类型进行读取和可视化。
本系列全部代码的链接