最新:windows下安装pcl点云库

news2025/3/17 4:10:39

📚博客主页:knighthood2001
公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下)
🎃知识星球:【认知up吧|成长|副业】介绍
❤️如遇文章付费,可先看看我公众号中是否发布免费文章❤️
🙏笔者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

    • 下载文件
    • 安装pcl
    • 配置环境变量
    • 配置vs中的环境
    • 测试一下
    • 总结

最近安装点云pcl遇到了一些问题,不过都解决了。

今天就将最新的安装教程分享给大家。

如果你按照网上的博客教程进行安装,一点问题都没有,那说明你大概是成功的,否则就会遇到C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Include中是空的,等问题。我这篇文章就可以解决这个问题。

本文有些图片中pcl版本是1.14.1,因为我那时候录屏了,后面我把这个版本卸载了,安装1.14.0时,没有录屏。

下载文件

首先就是pcl的下载安装。

https://github.com/PointCloudLibrary/pcl

在这里插入图片描述

然后点击release,这是发布的版本。

https://github.com/PointCloudLibrary/pcl/releases

在这里插入图片描述

我选择的是pcl 1.14.0,目前最新的是pcl 1.14.1,问题不大。

将上面这两个文件下载到本地

在这里插入图片描述

安装pcl

  1. 双击PCL-1.14.0-AllInOne-msvc2022-win64.exe进行安装,如果遇到杀毒软件阻止安装,不用管他,直接安装。
  2. 安装的时候直接默认安装位置就好,默认安装位置是C:\Program Files(当然你也可以自己设置位置)

在这里插入图片描述
然后你应该会遇到以下这是问题。

Warning! PATH too long installer unable to modify PATH!

在这里插入图片描述

这个问题大致是在你安装到一半的时候出现,然后你点击确定后,安装就完成了。

至于报这个错误,

C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2目录下本来只有这一个msi安装包。

在这里插入图片描述
至于安装的内容,它可能因为路径太长,自动给你安装到C:\Program Files目录下了。

网上的教程大多是将其安装到C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2目录下。而且都是按照这个讲的。

因此这部分缺少一点内容。

首先就是打开这个软件

在这里插入图片描述
在这里插入图片描述
然后点击Remove,也就是卸载。这时候C:\Program Files目录下就没有OpenNI文件夹了。

然后再双击点击这个msi安装包,选择路径到C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2中。

在这里插入图片描述
安装好后如上图所示。

然后把你下载的pdb文件解压出来。

在这里插入图片描述
将这些文件全选。
在这里插入图片描述

将其复制到C:\Program Files\PCL 1.14.0\bin中。

在这里插入图片描述

此时,安装环境才算结束。

配置环境变量

在这里插入图片描述
直接左下角搜索,环境变量,点击编辑系统环境变量

在这里插入图片描述

系统变量中的path添加以下内容。
在这里插入图片描述

在这里插入图片描述

%OPENNI2_REDIST64%
C:\Program Files\PCL 1.14.0\bin
C:\Program Files\PCL 1.14.0\3rdParty\VTK\bin
C:\Program Files\PCL 1.14.0\3rdParty\FLANN\bin
C:\Program Files\PCL 1.14.0\3rdParty\Qhull\bin
C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Tools

这里的最后一个路径,网上有些是C:\Program Files\OpenNI2\Tools,如果你按照网上其他人博客进行按照,如果遇到C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Include这个路径根本就没有,那就说明人家可能就是乱的,或者说缺少一步,这一步就是重新安装我上面说的那个msi安装包

配置vs中的环境

下面内容,我借鉴了网上一些博客图片(懒得截图了)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
TestPCL右键->属性。

配置属性->VC++目录->包含目录

添加以下内容

C:\Program Files\PCL 1.14.0\3rdParty\VTK\include\vtk-9.3
C:\Program Files\PCL 1.14.0\3rdParty\Qhull\include
C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Include
C:\Program Files\PCL 1.14.0\3rdParty\FLANN\include
C:\Program Files\PCL 1.14.0\3rdParty\Eigen3\include\eigen3
C:\Program Files\PCL 1.14.0\3rdParty\Boost\include\boost-1_84
C:\Program Files\PCL 1.14.0\include\pcl-1.14

在这里插入图片描述

配置属性->VC++目录->库目录

添加以下内容:

C:\Program Files\PCL 1.14.0\lib
C:\Program Files\PCL 1.14.0\3rdParty\Boost\lib
C:\Program Files\PCL 1.14.0\3rdParty\FLANN\lib
C:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Lib
C:\Program Files\PCL 1.14.0\3rdParty\Qhull\lib
C:\Program Files\PCL 1.14.0\3rdParty\VTK\lib


在这里插入图片描述
配置属性->链接器->输入->附加依赖项

在这里插入图片描述

在这里插入图片描述

添加以下内容

pcl_commond.lib;pcl_featuresd.lib;pcl_filtersd.lib;pcl_iod.lib;pcl_io_plyd.lib;pcl_kdtreed.lib;pcl_keypointsd.lib;pcl_mld.lib;pcl_octreed.lib;pcl_outofcored.lib;pcl_peopled.lib;pcl_recognitiond.lib;pcl_registrationd.lib;pcl_sample_consensusd.lib;pcl_searchd.lib;pcl_segmentationd.lib;pcl_stereod.lib;pcl_surfaced.lib;pcl_trackingd.lib;pcl_visualizationd.lib;vtkcgns-9.3-gd.lib;vtkChartsCore-9.3-gd.lib;vtkCommonColor-9.3-gd.lib;vtkCommonComputationalGeometry-9.3-gd.lib;vtkCommonCore-9.3-gd.lib;vtkCommonDataModel-9.3-gd.lib;vtkCommonExecutionModel-9.3-gd.lib;vtkCommonMath-9.3-gd.lib;vtkCommonMisc-9.3-gd.lib;vtkCommonSystem-9.3-gd.lib;vtkCommonTransforms-9.3-gd.lib;vtkDICOMParser-9.3-gd.lib;vtkDomainsChemistry-9.3-gd.lib;vtkDomainsChemistryOpenGL2-9.3-gd.lib;vtkdoubleconversion-9.3-gd.lib;vtkexodusII-9.3-gd.lib;vtkexpat-9.3-gd.lib;vtkFiltersAMR-9.3-gd.lib;vtkFiltersCellGrid-9.3-gd.lib;vtkFiltersCore-9.3-gd.lib;vtkFiltersExtraction-9.3-gd.lib;vtkFiltersFlowPaths-9.3-gd.lib;vtkFiltersGeneral-9.3-gd.lib;vtkFiltersGeneric-9.3-gd.lib;vtkFiltersGeometry-9.3-gd.lib;vtkFiltersGeometryPreview-9.3-gd.lib;vtkFiltersHybrid-9.3-gd.lib;vtkFiltersHyperTree-9.3-gd.lib;vtkFiltersImaging-9.3-gd.lib;vtkFiltersModeling-9.3-gd.lib;vtkFiltersParallel-9.3-gd.lib;vtkFiltersParallelImaging-9.3-gd.lib;vtkFiltersPoints-9.3-gd.lib;vtkFiltersProgrammable-9.3-gd.lib;vtkFiltersReduction-9.3-gd.lib;vtkFiltersSelection-9.3-gd.lib;vtkFiltersSMP-9.3-gd.lib;vtkFiltersSources-9.3-gd.lib;vtkFiltersStatistics-9.3-gd.lib;vtkFiltersTensor-9.3-gd.lib;vtkFiltersTexture-9.3-gd.lib;vtkFiltersTopology-9.3-gd.lib;vtkFiltersVerdict-9.3-gd.lib;vtkfmt-9.3-gd.lib;vtkfreetype-9.3-gd.lib;vtkGeovisCore-9.3-gd.lib;vtkgl2ps-9.3-gd.lib;vtkglew-9.3-gd.lib;vtkhdf5-9.3-gd.lib;vtkhdf5_hl-9.3-gd.lib;vtkImagingColor-9.3-gd.lib;vtkImagingCore-9.3-gd.lib;vtkImagingFourier-9.3-gd.lib;vtkImagingGeneral-9.3-gd.lib;vtkImagingHybrid-9.3-gd.lib;vtkImagingMath-9.3-gd.lib;vtkImagingMorphological-9.3-gd.lib;vtkImagingSources-9.3-gd.lib;vtkImagingStatistics-9.3-gd.lib;vtkImagingStencil-9.3-gd.lib;vtkInfovisCore-9.3-gd.lib;vtkInfovisLayout-9.3-gd.lib;vtkInteractionImage-9.3-gd.lib;vtkInteractionStyle-9.3-gd.lib;vtkInteractionWidgets-9.3-gd.lib;vtkIOAMR-9.3-gd.lib;vtkIOAsynchronous-9.3-gd.lib;vtkIOCellGrid-9.3-gd.lib;vtkIOCesium3DTiles-9.3-gd.lib;vtkIOCGNSReader-9.3-gd.lib;vtkIOChemistry-9.3-gd.lib;vtkIOCityGML-9.3-gd.lib;vtkIOCONVERGECFD-9.3-gd.lib;vtkIOCore-9.3-gd.lib;vtkIOEnSight-9.3-gd.lib;vtkIOExodus-9.3-gd.lib;vtkIOExport-9.3-gd.lib;vtkIOExportGL2PS-9.3-gd.lib;vtkIOExportPDF-9.3-gd.lib;vtkIOFLUENTCFF-9.3-gd.lib;vtkIOGeometry-9.3-gd.lib;vtkIOHDF-9.3-gd.lib;vtkIOImage-9.3-gd.lib;vtkIOImport-9.3-gd.lib;vtkIOInfovis-9.3-gd.lib;vtkIOIOSS-9.3-gd.lib;vtkIOLegacy-9.3-gd.lib;vtkIOLSDyna-9.3-gd.lib;vtkIOMINC-9.3-gd.lib;vtkIOMotionFX-9.3-gd.lib;vtkIOMovie-9.3-gd.lib;vtkIONetCDF-9.3-gd.lib;vtkIOOggTheora-9.3-gd.lib;vtkIOParallel-9.3-gd.lib;vtkIOParallelXML-9.3-gd.lib;vtkIOPLY-9.3-gd.lib;vtkIOSegY-9.3-gd.lib;vtkIOSQL-9.3-gd.lib;vtkioss-9.3-gd.lib;vtkIOTecplotTable-9.3-gd.lib;vtkIOVeraOut-9.3-gd.lib;vtkIOVideo-9.3-gd.lib;vtkIOXML-9.3-gd.lib;vtkIOXMLParser-9.3-gd.lib;vtkjpeg-9.3-gd.lib;vtkjsoncpp-9.3-gd.lib;vtkkissfft-9.3-gd.lib;vtklibharu-9.3-gd.lib;vtklibproj-9.3-gd.lib;vtklibxml2-9.3-gd.lib;vtkloguru-9.3-gd.lib;vtklz4-9.3-gd.lib;vtklzma-9.3-gd.lib;vtkmetaio-9.3-gd.lib;vtknetcdf-9.3-gd.lib;vtkogg-9.3-gd.lib;vtkParallelCore-9.3-gd.lib;vtkParallelDIY-9.3-gd.lib;vtkpng-9.3-gd.lib;vtkpugixml-9.3-gd.lib;vtkRenderingAnnotation-9.3-gd.lib;vtkRenderingCellGrid-9.3-gd.lib;vtkRenderingContext2D-9.3-gd.lib;vtkRenderingContextOpenGL2-9.3-gd.lib;vtkRenderingCore-9.3-gd.lib;vtkRenderingFreeType-9.3-gd.lib;vtkRenderingGL2PSOpenGL2-9.3-gd.lib;vtkRenderingHyperTreeGrid-9.3-gd.lib;vtkRenderingImage-9.3-gd.lib;vtkRenderingLabel-9.3-gd.lib;vtkRenderingLICOpenGL2-9.3-gd.lib;vtkRenderingLOD-9.3-gd.lib;vtkRenderingOpenGL2-9.3-gd.lib;vtkRenderingSceneGraph-9.3-gd.lib;vtkRenderingUI-9.3-gd.lib;vtkRenderingVolume-9.3-gd.lib;vtkRenderingVolumeOpenGL2-9.3-gd.lib;vtkRenderingVtkJS-9.3-gd.lib;vtksqlite-9.3-gd.lib;vtksys-9.3-gd.lib;vtkTestingRendering-9.3-gd.lib;vtktheora-9.3-gd.lib;vtktiff-9.3-gd.lib;vtkverdict-9.3-gd.lib;vtkViewsContext2D-9.3-gd.lib;vtkViewsCore-9.3-gd.lib;vtkViewsInfovis-9.3-gd.lib;vtkWrappingTools-9.3-gd.lib;vtkzlib-9.3-gd.lib;

最后,记得点击应用,应用,应用

测试一下

在这里插入图片描述

#include <iostream>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>

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

	cloud->width = 5;
	cloud->height = 1;
	cloud->points.resize(cloud->width* cloud->height);
	for (size_t i = 0; i < cloud->points.size(); ++i) {
		cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
		cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
		cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
	}
	std::cerr << "Cloud before filtering : " << std::endl;
	for (size_t i = 0; i < cloud->points.size(); ++i)
		std::cerr << "        " << cloud->points[i].x << "    " << cloud->points[i].y << "     " << cloud->points[i].z << std::endl;

	system("pause");

	return (0); 
}

然后你进行调试或者运行。

在这里插入图片描述
能成功运行应该就说明你配置成功了。

总结

相比网上的博客,我这里针对两个问题,一个就是路径太长,一个就是按照网上的教程,有些路径下面为空。

都是因为那个OpenNI的msi文件,默认安装到C:\Program Files

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1694800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【问题解决】ImportError: generic_type: cannot initialize type “ExternalAllocator“

一、问题描述 我的环境是Ubuntu20.04&#xff0c;Cuda版本是11.4&#xff0c;在复现OpenPCDet的时候遇到了下面问题&#xff1a; Traceback (most recent call last):File "train.py", line 7, in <module>from test import repeat_eval_ckptFile "/mnt…

Scala的简单学习一

一 相关知识 1.1 scala的安装 1.在idea中导入依赖&#xff0c;并在Idea下载scala插件 1.2 scala基础知识点 1.scala代码中一行语句的结束是以换行符为标准&#xff0c;可以不用写分号 2.class是一个普通的类&#xff0c;object相当于一个单例对象&#xff0c;object类中的…

git分支策略(github-flow VS git flow,如何选择)

一. 结论 Github flow&#xff1a;最简单 小型项目&#xff0c;持续部署&#xff0c;自动化测试程度高&#xff0c;发布流程简单 Git flow&#xff1a;复杂但最常用 大型项目&#xff0c;发布周期长&#xff0c;需要同时维护多个版本&#xff0c;发布流程复杂 表格提供了不…

36PE启动盘新秀:Ventoy(附各种PE的ISO下载)

PE启动盘新秀:Ventoy(附各种PE的ISO下载) 在我们以前的认知中,一个U盘只能制作包含一个系统的启动盘.比如,安装了微PE工具箱的U盘就不能安装其他什么PE工具箱了.这有时候让我们很无奈,只能买好多U盘,一个U盘一个PE系统. 这个问题的本质是什么?事实上,笔者认为,就是单个的ISO文…

Andoird使用Room实现持久化及使用Room进行增删查改

文章目录 Room概述Room的使用一、在gradle.build中添加依赖库kotlinJava 创建实体类创建抽象Dao层接口创建DataBase层使用创建的查看数据库 总结&#xff1a; 这篇文章会告诉你如何在Android中通过kotlin或者Java来实现数据持久化 Room概述 处理大量结构化数据的应用可极大地受…

2024年【N1叉车司机】考试题及N1叉车司机找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机考试题参考答案及N1叉车司机考试试题解析是安全生产模拟考试一点通题库老师及N1叉车司机操作证已考过的学员汇总&#xff0c;相对有效帮助N1叉车司机找解析学员顺利通过考试。 1、【多选题】《特种设备使用…

FreeRTOS 源码概述

FreeRTOS 目录结构 使用 STM32CubeMX 创建的 FreeRTOS 工程中&#xff0c;FreeRTOS 相关的源码如下: 主要涉及2个目录&#xff1a; Core Inc 目录下的 FreeRTOSConfig.h 是配置文件 Src 目录下的 freertos.c 是 STM32CubeMX 创建的默认任务 Middlewares\Third_Party…

深入解析编程逻辑中的关键字与逻辑运算

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、认识关键字及其重要性 二、逻辑运算的关键字 1. and、or 和 not 的运用 2. 逻辑运算的…

42-3 应急响应之服务排查

一、服务排查 服务是后台运行的进程,可在计算机启动时自动启动,也可暂停和重新启动,且不显示用户界面。它们特别适用于长时间运行的功能,以避免影响其他用户在同一台计算机上的工作。在应急响应中,服务常被恶意软件用作驻留方法。 二、Windows服务排查 打开【运行】对话框…

【独家揭秘!玩转ChatGPT?一文带你解锁秘籍!】

&#x1f680;【独家揭秘&#xff01;玩转ChatGPT&#xff1f;一文带你解锁秘籍&#xff01;】&#x1f680; &#x1f449; 【直达ChatGPT体验站】 ChatGPT&#xff0c;全称“Chat Generative Pre-trained Transformer”&#xff0c;是人工智能研究实验室OpenAI于2022年底推出…

9.2 Go语言入门(包和导入)

Go语言入门&#xff08;包和导入&#xff09; 目录一、包和导入1. 包&#xff08;Package&#xff09;1.1 包的定义1.2 包的作用1.3 main 包1.4 非 main 包 2. 导入&#xff08;Import&#xff09;2.1 导入标准库2.2 导入第三方包2.3 导入本地包2.4 导入别名2.5 导入并调用初始…

第四课 communcation服务-can配置第二弹

Davinci配置目标: 介绍DBC基本属性,并且配置出一个DBC。 将DBC导入到vector的davinci工具,生成我们想要的代码。 Davinci配置步骤: 1. 编辑DBC文件 DBC文件是一种非常重要的工具,所谓DBC就是Database CAN,CAN网络的数据库文件,定义了CAN网络的节点、消息、信号的所有…

查看远程桌面连接登录不上服务器,远程桌面连接登录不上服务器是什么情况?怎么解决?

在信息技术领域&#xff0c;远程桌面连接&#xff08;RDP&#xff09;是一种重要的远程管理工具&#xff0c;它允许管理员或用户从远程位置访问和控制服务器或计算机。然而&#xff0c;在实际操作中&#xff0c;远程桌面连接不上服务器的情况时有发生&#xff0c;这通常是由多种…

Redis 完整

Redis 什么是 redis ? 是一种基于键值对的 NoSql 型数据库。与 hashMap 不同的是&#xff0c;Redis 中的 value 支持 string&#xff08;字符串&#xff09;、hash&#xff08;哈希&#xff09;、 list&#xff08;列表&#xff09;、set&#xff08;集合&#xff09;、zset…

Kafka(十三)监控与告警

目录 Kafka监控与告警1 解决方案1.2 基础知识JMX监控指标代理查看KafkaJMX远程端口 1.3 真实案例Kafka Exporter:PromethusPromethus Alert ManagerGrafana 1.3 实际操作部署监控和告警系统1.2.1 部署Kafka Exporter1.2.2 部署Prometheus1.2.3 部署AlertManger1.2.4 添加告警规…

3D透视图转的时候模型闪动怎么解决?---模大狮模型网

在3D建模与渲染的世界中&#xff0c;透视图是我们观察和操作模型的重要窗口。然而&#xff0c;有时候在旋转透视图时&#xff0c;模型会出现闪动的现象&#xff0c;这不仅影响了我们的工作效率&#xff0c;还可能对最终的渲染效果产生负面影响。本文将探讨这一问题的成因&#…

【Text2SQL 经典模型】HydraNet

论文&#xff1a;Hybrid Ranking Network for Text-to-SQL ⭐⭐⭐ arXiv:2008.04759 HydraNet 也是利用 PLM 来生成 question 和 table schema 的 representation 并用于生成 SQL&#xff0c;并在 SQLova 和 X-SQL 做了改进&#xff0c;提升了在 WikiSQL 上的表现。 一、Intro…

WGCAT工单系统如何配置通知

WGCAT工单系统可以配置邮件通知 只要配置了邮件通知&#xff0c;那么一旦我们账号有新的工单需要处理&#xff0c;就会接受到邮件通知 除了邮件之外&#xff0c;还可以配置其他方式的通知&#xff0c;比如微信钉钉短信等方式&#xff0c;参考如下 https://www.wgstart.com/wgc…

Docker常用软件安装

文章目录 1.安装Tomcat1.docker hub查找镜像并复制拉取镜像命令2.拉取镜像到本地1.执行官网命令2.查看是否拉取成功 3.启动tomcat4.退出和重启1.由于是以交互方式启动的&#xff0c;所以不方便&#xff0c;直接ctrl c退出2.查看当前的容器3.使用docker start 命令启动容器&…

内外网文件传输安全可控的方式有哪些?这几款软件值得参考

在信息化时代&#xff0c;随着企业对网络安全和数据保护需求的日益增强&#xff0c;内外网隔离已成为一种常见的网络安全策略。内外网隔离旨在防止未经授权的访问和数据泄露&#xff0c;确保企业网络的安全稳定。然而&#xff0c;在实施内外网隔离的同时&#xff0c;如何实现文…