一、配置环境

1.win7 64位
2.Visual Studio 2015

二 、准备工作

安装包准备:

移步:https://www.cnblogs.com/weiyouqing/p/8046387.html

三、 安装

1.双击安装包中的「PCL-1.8.0-AllInOne-msvc2013-win64.exe」程序,安装的时候注意选上Add PCL to the system PATH for all users,如图所示,这样安装程序会自动在系统环境变量中添加PCL_ROOT项。

2.安装的过程中会弹出OpenNI的安装程序,将OpenNI的安装路径设置为PCL安装路径下的3rdParty\OpenNI2文件夹。

3.安装程序执行完成后,将pdb文件压缩包解压(即:PCL-1.8.0-AllInOne-msvc2013-win64-pdb.rar),pdb文件拷贝到PCL安装目录下的bin文件夹中。

四 、添加环境变量

1.点击win7的控制面板->系统->高级系统设置->在系统属性的“高级选项”卡下点击“环境变量”;

2.在系统子菜单里面找到“Path”,如图:

3.点击编辑,添加如下:

;C:\Program Files\PCL 1.8.0\bin;C:\Program Files\PCL 1.8.0\3rdParty\FLANN\bin;C:\Program Files\PCL 1.8.0\3rdParty\Qhull\bin;C:\Program Files\PCL 1.8.0\3rdParty\OpenNI2\Tools;C:\Program Files\PCL 1.8.0\3rdParty\VTK\bin

注意这里的“  ;  ”分号;

注意,第一项在“一键安装”时就已经添加。

链接:https://zhuanlan.zhihu.com/p/36590026


五 、重启电脑

六、VS2015工程配置步骤

1.打开VS2015,创建新的win32控制台工程,建好后将平台改成X64;

2.点击项目菜单的属性,如图:

3.在弹出的对话框中,

①    点击“包含目录”下拉箭头->编辑,添加文件路径:

完成后点击确定;

②点击“库目录”下拉箭头->编辑,添加文件路径:

完成后点击确定;

4.点击连接器->输入->附加依赖项:

点击下拉箭头->编辑,添加下列文件:

pcl_common_release.lib

pcl_features_release.lib

pcl_filters_release.lib

pcl_io_ply_release.lib

pcl_io_release.lib

pcl_kdtree_release.lib

pcl_keypoints_release.lib

pcl_ml_release.lib

pcl_octree_release.lib

pcl_outofcore_release.lib

pcl_people_release.lib

pcl_recognition_release.lib

pcl_registration_release.lib

pcl_sample_consensus_release.lib

pcl_search_release.lib

pcl_segmentation_release.lib

pcl_stereo_release.lib

pcl_surface_release.lib

pcl_tracking_release.lib

pcl_visualization_release.lib

libboost_atomic-vc140-mt-1_61.lib

libboost_chrono-vc140-mt-1_61.lib

libboost_container-vc140-mt-1_61.lib

libboost_context-vc140-mt-1_61.lib

libboost_coroutine-vc140-mt-1_61.lib

libboost_date_time-vc140-mt-1_61.lib

libboost_exception-vc140-mt-1_61.lib

libboost_filesystem-vc140-mt-1_61.lib

libboost_graph-vc140-mt-1_61.lib

libboost_iostreams-vc140-mt-1_61.lib

libboost_locale-vc140-mt-1_61.lib

libboost_log-vc140-mt-1_61.lib

libboost_log_setup-vc140-mt-1_61.lib

libboost_math_c99-vc140-mt-1_61.lib

libboost_math_c99f-vc140-mt-1_61.lib

libboost_math_c99l-vc140-mt-1_61.lib

libboost_math_tr1-vc140-mt-1_61.lib

libboost_math_tr1f-vc140-mt-1_61.lib

libboost_math_tr1l-vc140-mt-1_61.lib

libboost_mpi-vc140-mt-1_61.lib

libboost_prg_exec_monitor-vc140-mt-1_61.lib

libboost_program_options-vc140-mt-1_61.lib

libboost_random-vc140-mt-1_61.lib

libboost_regex-vc140-mt-1_61.lib

libboost_serialization-vc140-mt-1_61.lib

libboost_signals-vc140-mt-1_61.lib

libboost_system-vc140-mt-1_61.lib

libboost_test_exec_monitor-vc140-mt-1_61.lib

libboost_thread-vc140-mt-1_61.lib

libboost_timer-vc140-mt-1_61.lib

libboost_unit_test_framework-vc140-mt-1_61.lib

libboost_wave-vc140-mt-1_61.lib

libboost_wserialization-vc140-mt-1_61.lib

flann.lib

flann_s.lib

flann-gd.lib

flann_cpp_s.lib

flann_cpp_s-gd.lib

flann_s-gd.lib

qhull.lib

qhull_d.lib

qhullcpp_d.lib

qhullstatic.lib

qhullstatic_d.lib

qhullstatic_r.lib

qhullstatic_r_d.lib

qhull_p.lib

qhull_p_d.lib

qhull_r.lib

qhull_r_d.lib

vtkalglib-7.0.lib

vtkChartsCore-7.0.lib

vtkCommonColor-7.0.lib

vtkCommonComputationalGeometry-7.0.lib

vtkCommonCore-7.0.lib

vtkCommonDataModel-7.0.lib

vtkCommonExecutionModel-7.0.lib

vtkCommonMath-7.0.lib

vtkCommonMisc-7.0.lib

vtkCommonSystem-7.0.lib

vtkCommonTransforms-7.0.lib

vtkDICOMParser-7.0.lib

vtkDomainsChemistry-7.0.lib

vtkexoIIc-7.0.lib

vtkexpat-7.0.lib

vtkFiltersAMR-7.0.lib

vtkFiltersCore-7.0.lib

vtkFiltersExtraction-7.0.lib

vtkFiltersFlowPaths-7.0.lib

vtkFiltersGeneral-7.0.lib

vtkFiltersGeneric-7.0.lib

vtkFiltersGeometry-7.0.lib

vtkFiltersHybrid-7.0.lib

vtkFiltersHyperTree-7.0.lib

vtkFiltersImaging-7.0.lib

vtkFiltersModeling-7.0.lib

vtkFiltersParallel-7.0.lib

vtkFiltersParallelImaging-7.0.lib

vtkFiltersProgrammable-7.0.lib

vtkFiltersSelection-7.0.lib

vtkFiltersSMP-7.0.lib

vtkFiltersSources-7.0.lib

vtkFiltersStatistics-7.0.lib

vtkFiltersTexture-7.0.lib

vtkFiltersVerdict-7.0.lib

vtkfreetype-7.0.lib

vtkGeovisCore-7.0.lib

vtkhdf5-7.0.lib

vtkhdf5_hl-7.0.lib

vtkImagingColor-7.0.lib

vtkImagingCore-7.0.lib

vtkImagingFourier-7.0.lib

vtkImagingGeneral-7.0.lib

vtkImagingHybrid-7.0.lib

vtkImagingMath-7.0.lib

vtkImagingMorphological-7.0.lib

vtkImagingSources-7.0.lib

vtkImagingStatistics-7.0.lib

vtkImagingStencil-7.0.lib

vtkInfovisCore-7.0.lib

vtkInfovisLayout-7.0.lib

vtkInteractionImage-7.0.lib

vtkInteractionStyle-7.0.lib

vtkInteractionWidgets-7.0.lib

vtkIOAMR-7.0.lib

vtkIOCore-7.0.lib

vtkIOEnSight-7.0.lib

vtkIOExodus-7.0.lib

vtkIOExport-7.0.lib

vtkIOGeometry-7.0.lib

vtkIOImage-7.0.lib

vtkIOImport-7.0.lib

vtkIOInfovis-7.0.lib

vtkIOLegacy-7.0.lib

vtkIOLSDyna-7.0.lib

vtkIOMINC-7.0.lib

vtkIOMovie-7.0.lib

vtkIONetCDF-7.0.lib

vtkIOParallel-7.0.lib

vtkIOParallelXML-7.0.lib

vtkIOPLY-7.0.lib

vtkIOSQL-7.0.lib

vtkIOVideo-7.0.lib

vtkIOXML-7.0.lib

vtkIOXMLParser-7.0.lib

vtkjpeg-7.0.lib

vtkjsoncpp-7.0.lib

vtklibxml2-7.0.lib

vtkmetaio-7.0.lib

vtkNetCDF-7.0.lib

vtkNetCDF_cxx-7.0.lib

vtkoggtheora-7.0.lib

vtkParallelCore-7.0.lib

vtkpng-7.0.lib

vtkproj4-7.0.lib

vtkRenderingAnnotation-7.0.lib

vtkRenderingContext2D-7.0.lib

vtkRenderingContextOpenGL-7.0.lib

vtkRenderingCore-7.0.lib

vtkRenderingFreeType-7.0.lib

vtkRenderingImage-7.0.lib

vtkRenderingLabel-7.0.lib

vtkRenderingLOD-7.0.lib

vtkRenderingOpenGL-7.0.lib

vtkRenderingVolume-7.0.lib

vtkRenderingVolumeOpenGL-7.0.lib

vtksqlite-7.0.lib

vtksys-7.0.lib

vtktiff-7.0.lib

vtkverdict-7.0.lib

vtkViewsContext2D-7.0.lib

vtkViewsCore-7.0.lib

vtkViewsInfovis-7.0.lib

vtkzlib-7.0.lib

完成后点击确定;

注意:上面为在release下运行的文件,如果想在debug下运行,则将其中的release改成debug;

5.点击配置属性下的调试,右边有个环境项,把值设置为PATH=$(PCL_ROOT)bin;$(PCL_ROOT)3rdPartyFLANNbin;$(PCL_ROOT)3rdPartyVTKbin;$(PCL_ROOT)Qhullbin;$(PCL_ROOT)3rdPartyOpenNI2Tools;$(PATH)

6.点击配置属性下的CC++,点击它的子项预处理器,右边有个预处理器定义,添加上_SCL_SECURE_NO_WARNINGS           和              _CRT_SECURE_NO_WARNINGS。

7.点击配置属性下的CC++,常规

在附加包含目录中添加:C:\Program Files\PCL 1.8.0\3rdParty\Boost\include\boost-1_61

8.在属性管理器里点击项目,展开子项。

Property Manager与Solution Explorer在同一个tab布局中,如果没找到的话,可通过如下方式寻找属性管理器:菜单栏的VIEW(视图)->Other Windows(其他窗口)->Property Manager(属性管理器)。

如果安装的是32位,点击选中开头为Debug的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLDebug.props,添加上。点击选中开头为Release的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLRelease.props,添加上。
如果安装的是64位,点击选中开头为Debug的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLDebug.props,添加上。点击选中开头为Release的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLRelease.props,添加上。
注意在这里,64位的会有2个开头为Debug的子项,都要添加上PCLDebug.props,并且2个开头为Release的子项,也要添加上PCLRelease.props。

关于PCLRelease.props文件和PCLDebug.props文件在网盘的链接里面有;(https://www.cnblogs.com/weiyouqing/p/8046387.html)

9.

注意:如果出现以下这种问题:

解决方案:

从上图中的箭头中,将问题中提示的.lib文件删除即可;

五、程序实际测试

将rabbit.pcd(在网盘中,链接: https://pan.baidu.com/s/1BhoOHQHFPwMorfEJnDeiXg 提取码: k8t5)放到与工程中的主.cpp同一位置的文件夹下(工程文件夹)

程序代码:

#include<pcl/visualization/cloud_viewer.h>
#include<iostream>//标准C++库中的输入输出类相关头文件。
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
#include<pcl/io/ply_io.h>
#include<pcl/point_types.h> //PCL中支持的点类型头文件。
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[] = "rabbit.pcd";
if (- == pcl::io::loadPCDFile(strfilepath, *cloud)) {
cout << "error input!" << endl;
return -;
} cout << cloud->points.size() << endl;
pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象 viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
system("pause");
return ;
}

效果图:

来源:https://www.cnblogs.com/weiyouqing/p/8046387.html

PCL安装与配置的更多相关文章

  1. PCL 1.60 +windows+vs2010 安装与配置

    PCL简介 PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取.滤波.分 ...

  2. PCL安装使用

    一. 下载安装 http://pointclouds.org/downloads/windows.html 1. QT安装在默认路径下(否则后续会出现问题),添加环境变量QTDIR(c:\Qt\4.8 ...

  3. 转:PCL+VS2010环境配置

    1.下载 http://www.pointclouds.org/downloads/windows.html出下载PCL完全安装包1.6.0 all-in-one-installer,我的电脑是32位 ...

  4. PCL+VS2010环境配置

    PCL+VS2010环境配置 我本是效率至上的Linux党,但是PCL在Ubuntu下配置了几次都失败,不得不选择Windows 1.下载 http://go.rritw.com/www.pointc ...

  5. ubuntu16.04 pcl安装教程

    https://blog.csdn.net/zkj126521/article/details/80157351 https://blog.csdn.net/e_small/article/detai ...

  6. JDK安装与配置

    JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...

  7. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  8. 烂泥:redis3.2.3安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...

  9. mysql源码包手动安装、配置以及测试(亲测可行)

    笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...

随机推荐

  1. [转帖]Linux教程(14)- Linux中的查找和替换

    Linux教程(14)- Linux中的查找和替换 2018-08-22 07:03:58 钱婷婷 阅读数 46更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原 ...

  2. 20 IO流(十七)——Commons工具包,FileUtils(二)——copy方法

    copy方法 package com.sxt.copy; import java.io.File; import java.io.IOException; import java.net.URL; i ...

  3. Ali-Tomcat 安装

    通过在 Eclipse 安装 Tomcat4e 插件,或者在 Intellij Idea 安装配置 Ali-tomcat,可以快 速方便地启动并调试基于 EDAS 服务化框架 HSF 开发的应用. 1 ...

  4. ByteArray、16进制、字符串之间的转换

    ByteArray.16进制.字符串之间的转换: package fengzi.convert { import flash.utils.ByteArray; public class ByteArr ...

  5. NetCore踩坑记1、 一块网卡引发的血案

    公司的项目架构演进,我们也趁机尝试迁移到netcore,系列随笔讲记录我们的踩坑和填坑记录. HttpClient不行? 这是我们第一次尝试netcore 简要介绍环境 netcore2.2+aspn ...

  6. 【洛谷 P2633】 Count on a tree(主席树,树上差分)

    题目链接 思维难度0 实现难度7 建出主席树后用两点的状态减去lca和lca父亲的状态,然后在新树上跑第\(k\)小 #include <cstdio> #include <cstr ...

  7. mysql死锁检查

    1.查看当前数据库进程 show processlist;   show full processlist; #前者只显示前100条,后者显示所有的进程 2.一键杀死某个用户的所有进程 select ...

  8. Android笔记(六十八) Fragment总结

    Fragment的产生: 为了适应各种尺寸的屏幕,谷歌推出Fragment,可以把Fragment成Activity的一个组成部分,它拥有自己的生命周期.可以接收并处理用户的各种事件,还可以动态的增删 ...

  9. Android笔记(六十一)动态添加组件

    想要一个功能,点击按钮,可以在已有的布局上,新添加一组组件. 动态的创建组件,本质上还是创建组件,只不过是在程序中根据逻辑来创建.大致步骤是找到要创建控件的位置,然后将要创建的组件添加进去. 看代码: ...

  10. mysql学习之基础篇08 UTF8编码

    这次我们来说一下在Mysql中的编码问题: 我们知道应用于计算机的最早的字符集是ASCII,它所组成的编码是ASCII编码:由于对于其他国家来说它所容纳的字符个数比较少,后来就出现了ANSI字符集,它 ...