【无标题】

PCL Windows 安装教程,避坑指南

PCL简单介绍

PCL(Point Cloud Library)

PCL(Point Cloud Library是一种开源的C++库,用于处理和分析三维点云数据。它提供了一组丰富的工具和算法,广泛应用于计算机视觉、机器人、3D建模、环境感知等领域。

主要特点:

  1. 开源免费:PCL是完全开源和免费的,受BSD许可证保护。
  2. 跨平台支持:PCL可以在Windows、Linux和macOS等多个操作系统上运行。
  3. 模块化设计:PCL由多个独立的模块组成,例如过滤、特征提取、配准、分割和表面重建等,用户可以根据需要选择和使用。

主要功能:

  1. 点云过滤:去除噪声、下采样和裁剪点云数据。
  2. 特征提取:从点云中提取几何特征和描述子,例如法向量、曲率和关键点。
  3. 点云配准:将不同视角的点云数据对齐和融合,生成完整的3D模型。
  4. 点云分割:将点云分割成不同的部分或对象,以便进一步处理。
  5. 表面重建:从点云生成光滑的3D表面模型。

点云

点云是一种用于表示三维数据的形式,由大量的点组成,每个点在空间中都有特定的坐标(x, y, z)。点云可以通过激光扫描、摄影测量或深度传感器等设备获取,广泛用于3D扫描、环境感知和建模等应用中。

点云的特点:

  1. 高精度:点云数据可以非常详细地描述物体或环境的三维结构,具有高精度和高分辨率。
  2. 大数据量:点云通常包含大量的点,因此数据量较大,需要高效的处理和存储方法。
  3. 无拓扑结构:点云仅由离散点组成,没有明确的拓扑结构,需要通过算法进行处理和分析。

点云的应用:

  1. 3D扫描和建模:用于创建高精度的三维模型,例如文物保护、工业检测和逆向工程等。
  2. 环境感知:在自动驾驶、机器人导航和增强现实等领域,用于感知和理解周围环境。
  3. 计算机视觉:用于物体识别、跟踪和姿态估计等任务,提升计算机视觉系统的性能。

安装步骤

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

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值