PCL学习-PCD文件读取-读取点数据

本文详细介绍了如何在VS2015环境中使用PCL库读取PCD文件,包括步骤、所需头文件和可能出现的问题,如文件路径问题和OpenNI2.dll依赖。通过实例演示了如何加载并操作test_pcd.pcd文件,并提供了可能遇到的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、前提

2、PCD文件读取

3 可能遇到的问题


1、前提

   环境:VS2015+PCL1.8.0+Win10,PCL环境正确配置,步骤可以参考博客;https://blog.youkuaiyun.com/weixin_36602742/article/details/112345693

2、PCD文件读取

   1)新建win32控制台程序

  2)头文件

     

#include "stdafx.h"
#include <iostream> //标准C++库中输入输出类相关头文件
#include <pcl/io/pcd_io.h>//PCD 读写类相关的头文件
#include <pcl/point_types.h> //PCD中支持的点类型头文件

  3)与本程序相关的头文件声明

	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

4)创建一个PointCloud<PointXYZ>boost共享指针并进行实例化

if (pcl::io::loadPCDFile<pcl::PointXYZ>("test_pcd.pcd", *cloud) == -1)//*打开点云文件
	{
		PCL_ERROR("Couldn't read file test_pcd.pcd\n");
		return(-1);
	}

5)测试用的PCD文件,下载链接:链接:https://pan.baidu.com/s/1VHk7KdHGk0J3QUnWnAON2Q 
提取码:dyzd 

如链接失效,可以在下方评论留言获取

6)把二进制读取并转换到模板化的PointCloud格式里,这里用pcl::PointXYZ作为点类型

for (size_t i = 0;i<cloud->points.size();++i)
		std::cout << "    " << cloud->points[i].x
		<< " " << cloud->points[i].y
		<< " " << cloud->points[i].z << std::endl;

7)所有测试代码如下:

// test20210107.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream> //标准C++库中输入输出类相关头文件
#include <pcl/io/pcd_io.h>//PCD 读写类相关的头文件
#include <pcl/point_types.h> //PCD中支持的点类型头文件
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>

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

	if (pcl::io::loadPCDFile<pcl::PointXYZ>("test_pcd.pcd", *cloud) == -1)//*打开点云文件
	{
		PCL_ERROR("Couldn't read file test_pcd.pcd\n");
		return(-1);
	}
	std::cout << "Loaded "
		<< cloud->width*cloud->height
		<< " data points from test_pcd.pcd with the following fields: "
		<< std::endl;
	for (size_t i = 0;i<cloud->points.size();++i)
		std::cout << "    " << cloud->points[i].x
		<< " " << cloud->points[i].y
		<< " " << cloud->points[i].z << std::endl;
	system("pause");
	return(0);
}

8)测试结果如下:

3 可能遇到的问题

1)PCD文件必须放到源代码同一目录下

2)初次编译可能会出现无法找到OpenNI2.dll无法获取的问题,需要将C:\Program Files (x86)\PCL 1.8.0\3rdParty\OpenNI2\Tools目录下的OpenNI2.dll文件拷贝到源文件同一目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值