PCL Windows 安装教程,避坑指南
PCL简单介绍
PCL(Point Cloud Library)
PCL(Point Cloud Library是一种开源的C++库,用于处理和分析三维点云数据。它提供了一组丰富的工具和算法,广泛应用于计算机视觉、机器人、3D建模、环境感知等领域。
主要特点:
- 开源免费:PCL是完全开源和免费的,受BSD许可证保护。
- 跨平台支持:PCL可以在Windows、Linux和macOS等多个操作系统上运行。
- 模块化设计:PCL由多个独立的模块组成,例如过滤、特征提取、配准、分割和表面重建等,用户可以根据需要选择和使用。
主要功能:
- 点云过滤:去除噪声、下采样和裁剪点云数据。
- 特征提取:从点云中提取几何特征和描述子,例如法向量、曲率和关键点。
- 点云配准:将不同视角的点云数据对齐和融合,生成完整的3D模型。
- 点云分割:将点云分割成不同的部分或对象,以便进一步处理。
- 表面重建:从点云生成光滑的3D表面模型。
点云
点云是一种用于表示三维数据的形式,由大量的点组成,每个点在空间中都有特定的坐标(x, y, z)。点云可以通过激光扫描、摄影测量或深度传感器等设备获取,广泛用于3D扫描、环境感知和建模等应用中。
点云的特点:
- 高精度:点云数据可以非常详细地描述物体或环境的三维结构,具有高精度和高分辨率。
- 大数据量:点云通常包含大量的点,因此数据量较大,需要高效的处理和存储方法。
- 无拓扑结构:点云仅由离散点组成,没有明确的拓扑结构,需要通过算法进行处理和分析。
点云的应用:
- 3D扫描和建模:用于创建高精度的三维模型,例如文物保护、工业检测和逆向工程等。
- 环境感知:在自动驾驶、机器人导航和增强现实等领域,用于感知和理解周围环境。
- 计算机视觉:用于物体识别、跟踪和姿态估计等任务,提升计算机视觉系统的性能。
安装步骤
https://www.yuque.com/huangzhongqing/pcl/lnilhi
这篇文章中讲的比较清楚了,注意VS版本和PCL版本的对应就行。
使用版本:VS 2022 PCL 1.14.1
遇到的问题
由于版本不同,某些方法的命名可能不同,所以,在遇到引入包的问题的时候,查看下包的名称
最经典的兔子的代码,很多代码会出错,因为是之前的老的版本,以下是一个最新的代码
#include<iostream>
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>
#include<pcl/io/ply_io.h>
#include<pcl/visualization/cloud_viewer.h>
int user_data;
using std::cout;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
viewer.setBackgroundColor(1.0, 0.5, 1.0); //设置背景颜色
}
int main() {
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
char strfilepath[256] = "F:/rabbit.pcd";
if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) {
cout << "error input!" << endl;
return -1;
}
cout << cloud->points.size() << endl;
pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象
viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
system("pause");
return 0;
}
当运行这段代码,出来一个兔子的点云图像的时候,就成功了。
由于需要带入大量的.lib后缀的文件,这里给出一个工具
@echo off
set OUTPUT_FILE=output.txt
rem Clear output file
echo. > %OUTPUT_FILE%
rem Iterate through current directory and all subdirectories
for /r %%i in (*.lib) do (
echo %%~nxi >> %OUTPUT_FILE%
)
echo "File names have been written to %OUTPUT_FILE%"
参考文章
https://zhuanlan.zhihu.com/p/268524083