PCL1.11.0下载安装(Windows)

news2024/9/29 19:15:04

PCL1.11.0下载安装(Windows)

PCL安装需要的几个模块如下图所示:

一、PCL1.11.0下载

PCL以1.11.0版本为例,打开下载连接(PCL下载)

下载PCL-1.11.0-AllInOne-msvc2019-win64.exepcl-1.11.0-pdb-msvc2019-win64.zip

二、PCL安装

点击PCL-1.11.0-AllInOne-msvc2019-win64.exe文件,通过管理员权限,开始安装。

安装完成后,我们可以再安装文件夹下,看到安装的内容:

三、安装OpenNI

在3rdParty\OpenNI2文件夹下安装OpenNI-Windows-x64-2.2.msi。

移除完成后,我们重新安装,安装路径选择pcl按章的目录:D:\Soft_Install\pcl1_11_0\PCL 1.11.0\3rdParty\OpenNI2\

可以看到安装之后的内容

四、添加环境变量

安装完成之后,我们打开环境变量,可以看到环境变量变化如下:

增加了四个环境变量。

五、拷贝pdb文件

安装完成后,解压下载的pcl-1.11.0-pdb-msvc2019-win64.zip文件。

解压的内容为:

把解压的内容拷贝到pcl安装路径下的bin文件夹内:


 

六、VTK替换

VTK8.2.0的编译(参见:VTK8.2.0编译(Qt 5.14.2+VS2017)),如果你用其他的vs编译的过程类似。

我们把编译好的VTK内容,如下所示

替换掉PCL中安装的VTK

七、注意事项

注意:

在把上面的步骤执行完成后,我们还需要操作一步,如果不操作跳过我这一步,在最后Qt Creator在调用pcl的时候会报错。可以先看我的报错:

boost库和Eigen库加载的不识别,究其原因是我在pro文件中使用INCLUDEPATH添加头文件时没有识别,所以问题就出现在pcl的安装路径上,看下面的图,PCL 1.11.0中间有个空格。

所以,我们把这个空格删掉就可以了。

设置环境变量

先在新建一个变量PCL_ROOT,变量值为我们pcl的安装目录:

然后双击Path中增加环境变量。

然后我们新建以下的环境变量

%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools

%OPENNI2_REDIST64%

%OPENNI2_LIB64%

%OPENNI2_INCLUDE64%

然后重启电脑。

八、创建一个点云项目

使用Qt Creator创建点云程序

1、使用Qt 创建一个MSVC 64位的程序,命名pcltest001,然后再pro文件中配置pcl相关的内容:


INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/Boost/include/boost-1_73 \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/Eigen/eigen3 \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/FLANN/include/flann \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/OpenNI2/Include \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/Qhull/include \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/VTK/include/vtk-8.2 \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/include/pcl-1.11/pcl \

INCLUDEPATH += D:/Soft_Install/pcl1_11_0/PCL1.11.0/include/pcl-1.11 \

LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/lib \
        -lpcl_common \
        -lpcl_features \
        -lpcl_filters \
        -lpcl_io \
        -lpcl_io_ply \
        -lpcl_kdtree \
        -lpcl_keypoints \
        -lpcl_ml \
        -lpcl_octree \
        -lpcl_outofcore \
        -lpcl_people \
        -lpcl_recognition \
        -lpcl_registration \
        -lpcl_sample_consensus \
        -lpcl_search \
        -lpcl_segmentation \
        -lpcl_stereo \
        -lpcl_surface \
        -lpcl_tracking \
        -lpcl_visualization

LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/Boost/lib/ \
        -llibboost_atomic-vc142-mt-x64-1_73\
        -llibboost_bzip2-vc142-mt-x64-1_73\
        -llibboost_chrono-vc142-mt-x64-1_73\
        -llibboost_container-vc142-mt-x64-1_73\
        -llibboost_context-vc142-mt-x64-1_73\
        -llibboost_contract-vc142-mt-x64-1_73\
        -llibboost_coroutine-vc142-mt-x64-1_73\
        -llibboost_date_time-vc142-mt-x64-1_73\
        -llibboost_exception-vc142-mt-x64-1_73\
        -llibboost_fiber-vc142-mt-x64-1_73\
        -llibboost_filesystem-vc142-mt-x64-1_73\
        -llibboost_graph-vc142-mt-x64-1_73\
        -llibboost_graph_parallel-vc142-mt-x64-1_73\
        -llibboost_iostreams-vc142-mt-x64-1_73\
        -llibboost_locale-vc142-mt-x64-1_73\
        -llibboost_log-vc142-mt-x64-1_73\
        -llibboost_log_setup-vc142-mt-x64-1_73\
        -llibboost_math_c99-vc142-mt-x64-1_73\
        -llibboost_math_c99f-vc142-mt-x64-1_73\
        -llibboost_math_c99l-vc142-mt-x64-1_73\
        -llibboost_math_tr1-vc142-mt-x64-1_73\
        -llibboost_math_tr1f-vc142-mt-x64-1_73\
        -llibboost_math_tr1l-vc142-mt-x64-1_73\
        -llibboost_mpi-vc142-mt-x64-1_73\
        -llibboost_nowide-vc142-mt-x64-1_73\
        -llibboost_numpy38-vc142-mt-x64-1_73\
        -llibboost_prg_exec_monitor-vc142-mt-x64-1_73\
        -llibboost_program_options-vc142-mt-x64-1_73\
        -llibboost_python38-vc142-mt-x64-1_73\
        -llibboost_random-vc142-mt-x64-1_73\
        -llibboost_regex-vc142-mt-x64-1_73\
        -llibboost_serialization-vc142-mt-x64-1_73\
        -llibboost_stacktrace_noop-vc142-mt-x64-1_73\
        -llibboost_stacktrace_windbg-vc142-mt-x64-1_73\
        -llibboost_stacktrace_windbg_cached-vc142-mt-x64-1_73\
        -llibboost_system-vc142-mt-x64-1_73\
        -llibboost_test_exec_monitor-vc142-mt-x64-1_73\
        -llibboost_thread-vc142-mt-x64-1_73\
        -llibboost_timer-vc142-mt-x64-1_73\
        -llibboost_type_erasure-vc142-mt-x64-1_73\
        -llibboost_unit_test_framework-vc142-mt-x64-1_73\
        -llibboost_wave-vc142-mt-x64-1_73\
        -llibboost_wserialization-vc142-mt-x64-1_73\
        -llibboost_zlib-vc142-mt-x64-1_73

LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/FLANN/lib\
        -lflann\
        -lflann_cpp\
        -lflann_cpp_s\
        -lflann_s\


LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/OpenNI2/Lib\
        -lOpenNI2

LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/Qhull/lib\
        -lqhull\
        -lqhullcpp\
        -lqhullstatic\
        -lqhullstatic_r\
        -lqhull_p\
        -lqhull_r
		
LIBS += -LD:/Soft_Install/pcl1_11_0/PCL1.11.0/3rdParty/VTK/lib \
        -lvtkChartsCore-8.2 \
        -lvtkCommonColor-8.2 \
        -lvtkCommonComputationalGeometry-8.2 \
        -lvtkCommonCore-8.2 \
        -lvtkCommonDataModel-8.2 \
        -lvtkCommonExecutionModel-8.2 \
        -lvtkCommonMath-8.2 \
        -lvtkCommonMisc-8.2 \
        -lvtkCommonSystem-8.2 \
        -lvtkCommonTransforms-8.2 \
        -lvtkDICOMParser-8.2 \
        -lvtkDomainsChemistry-8.2 \
        -lvtkDomainsChemistryOpenGL2-8.2 \
        -lvtkdoubleconversion-8.2 \
        -lvtkexodusII-8.2 \
        -lvtkexpat-8.2 \
        -lvtkFiltersAMR-8.2 \
        -lvtkFiltersCore-8.2 \
        -lvtkFiltersExtraction-8.2 \
        -lvtkFiltersFlowPaths-8.2 \
        -lvtkFiltersGeneral-8.2 \
        -lvtkFiltersGeneric-8.2 \
        -lvtkFiltersGeometry-8.2 \
        -lvtkFiltersHybrid-8.2 \
        -lvtkFiltersHyperTree-8.2 \
        -lvtkFiltersImaging-8.2 \
        -lvtkFiltersModeling-8.2 \
        -lvtkFiltersParallel-8.2 \
        -lvtkFiltersParallelImaging-8.2 \
        -lvtkFiltersPoints-8.2 \
        -lvtkFiltersProgrammable-8.2 \
        -lvtkFiltersSelection-8.2 \
        -lvtkFiltersSMP-8.2 \
        -lvtkFiltersSources-8.2 \
        -lvtkFiltersStatistics-8.2 \
        -lvtkFiltersTexture-8.2 \
        -lvtkFiltersTopology-8.2 \
        -lvtkFiltersVerdict-8.2 \
        -lvtkfreetype-8.2 \
        -lvtkGeovisCore-8.2 \
        -lvtkgl2ps-8.2 \
        -lvtkglew-8.2 \
        -lvtkGUISupportQt-8.2 \
        -lvtkGUISupportQtOpenGL-8.2 \
        -lvtkGUISupportQtSQL-8.2 \
        -lvtkhdf5-8.2 \
        -lvtkhdf5_hl-8.2 \
        -lvtkImagingColor-8.2 \
        -lvtkImagingCore-8.2 \
        -lvtkImagingFourier-8.2 \
        -lvtkImagingGeneral-8.2 \
        -lvtkImagingHybrid-8.2 \
        -lvtkImagingMath-8.2 \
        -lvtkImagingMorphological-8.2 \
        -lvtkImagingSources-8.2 \
        -lvtkImagingStatistics-8.2 \
        -lvtkImagingStencil-8.2 \
        -lvtkInfovisCore-8.2 \
        -lvtkInfovisLayout-8.2 \
        -lvtkInteractionImage-8.2 \
        -lvtkInteractionStyle-8.2 \
        -lvtkInteractionWidgets-8.2 \
        -lvtkIOAMR-8.2 \
        -lvtkIOAsynchronous-8.2 \
        -lvtkIOCityGML-8.2 \
        -lvtkIOCore-8.2 \
        -lvtkIOEnSight-8.2 \
        -lvtkIOExodus-8.2 \
        -lvtkIOExport-8.2 \
        -lvtkIOExportOpenGL2-8.2 \
        -lvtkIOExportPDF-8.2 \
        -lvtkIOGeometry-8.2 \
        -lvtkIOImage-8.2 \
        -lvtkIOImport-8.2 \
        -lvtkIOInfovis-8.2 \
        -lvtkIOLegacy-8.2 \
        -lvtkIOLSDyna-8.2 \
        -lvtkIOMINC-8.2 \
        -lvtkIOMovie-8.2 \
        -lvtkIONetCDF-8.2 \
        -lvtkIOParallel-8.2 \
        -lvtkIOParallelXML-8.2 \
        -lvtkIOPLY-8.2 \
        -lvtkIOSegY-8.2 \
        -lvtkIOSQL-8.2 \
        -lvtkIOTecplotTable-8.2 \
        -lvtkIOVeraOut-8.2 \
        -lvtkIOVideo-8.2 \
        -lvtkIOXML-8.2 \
        -lvtkIOXMLParser-8.2 \
        -lvtkjpeg-8.2 \
        -lvtkjsoncpp-8.2 \
        -lvtklibharu-8.2 \
        -lvtklibxml2-8.2 \
        -lvtkLocalExample-8.2 \
        -lvtklz4-8.2 \
        -lvtklzma-8.2 \
        -lvtkmetaio-8.2 \
        -lvtkNetCDF-8.2 \
        -lvtkogg-8.2 \
        -lvtkParallelCore-8.2 \
        -lvtkpng-8.2 \
        -lvtkproj-8.2 \
        -lvtkpugixml-8.2 \
        -lvtkRenderingAnnotation-8.2 \
        -lvtkRenderingContext2D-8.2 \
        -lvtkRenderingContextOpenGL2-8.2 \
        -lvtkRenderingCore-8.2 \
        -lvtkRenderingFreeType-8.2 \
        -lvtkRenderingGL2PSOpenGL2-8.2 \
        -lvtkRenderingImage-8.2 \
        -lvtkRenderingLabel-8.2 \
        -lvtkRenderingLOD-8.2 \
        -lvtkRenderingOpenGL2-8.2 \
        -lvtkRenderingQt-8.2 \
        -lvtkRenderingVolume-8.2 \
        -lvtkRenderingVolumeOpenGL2-8.2 \
        -lvtksqlite-8.2 \
        -lvtksys-8.2 \
        -lvtktheora-8.2 \
        -lvtktiff-8.2 \
        -lvtkverdict-8.2 \
        -lvtkViewsContext2D-8.2 \
        -lvtkViewsCore-8.2 \
        -lvtkViewsInfovis-8.2 \
        -lvtkViewsQt-8.2 \
        -lvtkzlib-8.2

然后,在mian文件中编程:

#include "mainwindow.h"

#include <QApplication>

#include <iostream> //标准输入输出流
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>
#include<pcl/io/ply_io.h>
#include <pcl/point_types.h> //PCL对各种格式的点的支持头文件
#include <pcl/visualization/cloud_viewer.h>//点云查看窗口头文件
#include <pcl/point_cloud.h>
#include <QDebug>
#include <QDir>

typedef pcl::PointXYZ PointT;

using namespace std;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    MainWindow w;
//    w.show();

    std::cout<<"start"<<std::endl;
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);


    QString file = "E:/Project_Data/PCL_Data/rabbit.pcd";



    // 读取点云,失败返回-1
    if (pcl::io::loadPCDFile<PointT>(file.toStdString(), *cloud) == -1)
    {
        PCL_ERROR("couldn't read file\n");
        std::cout<<"error"<<std::endl;
        return (-1);
    }

    std::cout << cloud->points.size() << std::endl;
    // 点云可视化
    pcl::visualization::CloudViewer viewer("Cloud Viewer");
    viewer.showCloud(cloud);

    // 循环判断是否退出
    while (!viewer.wasStopped()) {
        // 后续也可以在这里对点云做很多处理
    }


    std::cout<<"end"<<std::endl;
    return a.exec();
}

最后,以release模式编译我们的项目,因为我的vtk只编译了releas的,所以这个项目编译了release的。顺便把所需要的dll都拷贝到项目release文件夹中。

运行程序,如下图所示:

我们的PCL配置,到这里就结束了。

文章未经授权,禁止转载!

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

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

相关文章

Springboot指定扫描路径

方式一&#xff1a;通过在启动类的SpringbootApplication中指定包扫描或类扫描 指定需要扫描的包 scanBasePackages{"待扫描包1","待扫描包2", . . . ," "} 指定需要扫描的类 scanBasePackageClasses{类1.class,类2.class,...} 方式二&#xff…

Linux系统编程 --- 动静态库

一、回顾&#xff0c;制作一个库 libXXX.a --- 静态链接 libYYY.so --- 动态链接 设计一个库&#xff1a; 把我们提供的方法&#xff0c;给别人用&#xff1a; 1、把源文件直接给他 2、把我们的源代码打包成库 库 头文件。 原理&#xff1a;把所有的.o文件打包成.a文件也…

(免费领源码)python#Django#MYSQL医院预约挂号系统24802-计算机毕业设计项目选题推荐

摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个基于django 医院预约挂号系统 &#xff0c;会使&#xff1b;医院预约挂号系统的管理工作系统化、规范化&#xff0c;也会提高平台形象&a…

宝塔企业版安装命令

使用方法 安装脚本: wget -O install.sh https://www.xpnal.cn/install/install_6.0.sh \&\& bash install.sh 更新脚本: curl https://www.xpnal.cn/install/update6.sh|bash 脚本说明: 没有安装过宝塔直接执行安装脚本&#xff0c;安装过执行更新脚本。 提醒 …

【Material-UI】多选模式(Multiple values)与Autocomplete的高级用法解析

文章目录 一、多选模式的基本用法二、高级用法1. 固定选项&#xff08;Fixed options&#xff09;2. 复选框&#xff08;Checkboxes&#xff09;3. 限制标签显示数量&#xff08;Limit tags&#xff09; 三、性能优化与最佳实践1. 筛选已选项&#xff08;filterSelectedOptions…

Scratch的下载与安装

如果你在某搜索引擎用这个&#xff0c;就是离被骗钱不远了 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 废话不多说&#xff0c;直接放软件安装包。重要的事情说三遍&#xff0c;收费的全是骗人的&#xff01;收费的全是骗人的&#xff01;收费的全是…

【C++题解】1015. 鸡兔同笼问题

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1015. 鸡兔同笼问题 类型&#xff1a;简单穷举 题目描述&#xff1a; 鸡兔同笼问题&#xff1a;一个笼子里面有鸡若干只&#xff0c;兔若干只。共有头 50 个&#xff0c;共有腿 16…

C语言的回调函数(详解qsort函数)

在上一篇文章中我们学习了指针与数组之间的关系&#xff0c;学习了指针数组&#xff0c;数组指针变量&#xff0c;函数指针变量和函数指针数组。那么接下来我们要学习的是一个利用函数指针变量去解决和简化各种问题的回调函数。 一、回调函数 回调函数在编程中是一种很常见的…

pip install -r requirements.txt下载某个.whl文件较慢的问题

访问PYPI官网。搜索该文件名字 如果不是自己要的版本&#xff0c;点击左边的Release history。 选择版本后再次在Download files页面下载.whl文件 下载完之后切换至自己的项目解释器虚拟环境。 python -m pip install 文件名.whl 如果你改名python.exe为python3.exe&#xff…

【消息队列】RabbitMQ 面试篇

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️专栏&#xff1a;消息队列 &#x1f397;️如何活着&#xff0c;是我找寻的方向 目录 1. RabbitMQ 有哪些工作模式&#xff1f;2. 如何保证消息不丢失&#xff08;可靠性&#xff09;3. 什么是死信队列&#xff0c;如…

基于K210智能人脸识别+车牌识别系统(完整工程资料源码)

运行效果&#xff1a; 基于K210的智能人脸与车牌识别系统工程 目录&#xff1a; 运行效果&#xff1a; 目录&#xff1a; 前言&#xff1a; 一、国内外研究现状与发展趋势 二、相关技术基础 2.1 人脸识别技术 2.2 车牌识别技术 三、智能小区门禁系统设计 3.1 系统设计方案 3.2 …

【网络编程】网络原理(一)

系列文章目录 1、 初识网络 2、网络编程的基础使用&#xff08;一&#xff09; 文章目录 系列文章目录前言一、端口号的使用二、UDP报文学习1.报文格式2.MD5算法 总结 前言 在前文中&#xff0c;主要对UDP和TCP协议有了简单的了解&#xff0c;而这两种协议是负责传输层的内容…

组件设计原则

state数据结构设计 用数据描述所有内容数据要结构化&#xff0c;易于程序操作&#xff08;遍历、查找&#xff09;数据要可扩展&#xff0c;以便增加新的功能 组件设计组件通讯 从功能上拆分层次尽量让组件原子化容器组件&#xff08;只管理数据&#xff09;& UI组件&am…

【MySQL】库操作,数据类型

目录 MySQL简介SQL语句分类库操作语句展示数据库创建数据库使用数据库删除数据库 数据类型整型浮点型字符串日期类型 MySQL简介 数据库有关系型数据库和非关系型数据库。 关系型数据库&#xff1a;是指采用了关系模型来组织数据的数据库。 简单来说&#xff0c;关系模型指的就…

科普文:JUC系列之ConcurrentLinkedQueue非阻塞队列用法

概叙 **Queue接口与List、Set同一级别&#xff0c;都是继承了Collection接口**。队列是一种数据结构&#xff0e;它有两个基本操作&#xff1a;在队列尾部加人一个元素&#xff0c;和从队列头部移除一个元素&#xff0c;队列以一种先进先出的方式管理数据。 队列分为两种&#…

pikachu漏洞平台~文件包含漏洞

在PHP程序中使用文件包含的对象可以被前端的用户控制且没有经过过滤或严格的定义&#xff0c;用户可以将其他的文件作为参数带入到PHP代码中解释执行&#xff0c;从而造成敏感信息泄露/程序文件读取/GetShell等危害的漏洞。 0x01文件包含漏洞 连接成功&#xff0c;完毕&#x…

聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项

目录 一、IOC容器的刷新环节快速回顾 二、postProcessBeanFactory源码展示分析 &#xff08;一&#xff09;模版方法postProcessBeanFactory &#xff08;二&#xff09;AnnotationConfigServletWebServerApplicationContext 调用父类的 postProcessBeanFactory 包扫描 …

oracle(19c)用户管理

简介 本文介绍 Oracle 中的用户管理&#xff0c;包含以下内容&#xff1a; 概念介绍 系统用户 解锁 hr 用户 创建用户 用户相关案例 使用 Profile 管理用户口令 Oracle 的认证方式 重置管理员(sys)密码 1. 概念介绍 使用前可以自行安装oracle数据库 oracle19c安装&a…

【系统架构设计师】二十四、安全架构设计理论与实践④

目录 六、数据库系统的安全设计 6.1 数据库的完整性设计 6.1.1 数据库完整性设计原则 6.1.2 数据库完整性的作用 6.1.3 数据库完整性设计示例 七、系统架构的脆弱性分析 7.1 软件脆弱性的特点和分类 7.2 软件脆弱性的生命周期 7.2.1 脆弱性的引入阶段 7.2.2 产生破坏…

pythonflaskMYSQL自驾游搜索系统32127-计算机毕业设计项目选题推荐(附源码)

目 录 摘要 1 绪论 1.1研究背景 1.2爬虫技术 1.3flask框架介绍 2 1.4论文结构与章节安排 3 2 自驾游搜索系统分析 4 2.1 可行性分析 4 2.2 系统流程分析 4 2.2.1数据增加流程 5 2.3.2数据修改流程 5 2.3.3数据删除流程 5 2.3 系统功能分析 5 2.3.1 功能性分析 6 2.3.2 非功…