简述
PCL(Point Cloud Library)作为一个优秀的点云库,目前已经开源并且集成了许多优秀学者提出的高效的算法,值得深入学习。本文将以Windows 10和Visual Studio 2017开发环境为例,讲解如何配置点云库。
环境
- Windows
- Visual Studio
准备工作
安装Visual Studio
教程中使用的是Visual Studio 2017 Enterprise版本,具体的安装方式可从其他网站中搜索到,在此不做赘述。
安装PCL 1.8
首先去https://github.com/PointCloudLibrary/pcl/releases下载点云库的安装包,我们需要的是AllInOne
和pdb
两个包。截止到此教程发布的时间,点云库的最新版本是1.8.1,如下图所示。
在这里需要根据自己机器的情况下载相应的版本(操作系统的位数,以及Visual Studio的版本)。我这里选择PCL-1.8.1-AllInOne-msvc2017-win64.exe
和pcl-1.8.1-pdb-msvc2017-win64.zip
两个文件。
这两个包根据网速不同,下载的时间也不同,耐心等待即可。
下载结束之后,运行我们下载得到的PCL-1.8.1-AllInOne-msvc2017-win64.exe
文件进行安装。下面几幅图显示出了几个必要的步骤,未做说明的步骤直接下一步或者根据自己的喜好配置即可。
我在安装这类库相关的软件的时候都会尽量避免在路径中带有空格,因为有些软件在检查路径的时候可能会由于空格引发各种问题。因此我把默认的路径中的空格换成了下划线_
。当然,Windows默认的Program Files目录无视这条规则,毕竟微软自己设置的目录名不会出现路径的问题。因此,我这里设置的路径是C:\Program Files\PCL_1_8_1
。
这里需要配置需要安装的其他库,如果自己不确定到底有没有其他的软件安装过相关的库,那么就全部都勾选了,否则由于库的缺失,点云库就不能正常工作。
接下来点击安装
便可以开始漫长的安装过程。
一段时间之后,会弹出来一个OpenNI2的安装窗口,此时直接一路下一步就好,但是一定要记住自己设置的安装路径。由于点云在安装的过程中会把所有的第三方库全部安装在点云安装目录下的3rdparty
文件夹里。因此,为了保持文件夹的整洁,我这里也把OpenNI2安装在3rdparty
文件夹里,即C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2
。
OpenNI2安装结束之后就完成了点云库的完整安装,安装目录下的样子和3rdparty
文件夹下的样子如下图:
可以看到,我把所有的第三方库全部安装到了3rdparty
文件夹中。
环境变量配置
点云库安装完成之后,还有一个比较重要的步骤,就是配置Windows的环境变量。
右键点击此电脑(我的电脑,计算机,这台电脑等名字)
,选择属性
,接着点击左侧的高级系统设置
,然后选择高级
选项卡,点击下面的环境变量...
按钮,此时便打开了环境变量的配置窗口。
此时,我们可以看到PCL的根目录以及OpenNI2的目录已经添加到了系统变量
中。
然后,我们双击系统变量
中的Path
,再将以下的目录添加到Path
中(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一样才行):
1 | %PCL_ROOT%\bin |
如果用的电脑的操作系统是Windows 10的话,就上面几个路径一个一个复制下来,然后添加到Path
的窗格中即可,非常方便,如下图所示:
如果是其他版本的Windows系统,则需要把上面的几个路径写成下面的这种形式,然后叠加到Path
环境变量的后面(具体的做法可以去搜索Windows 7环境变量的配置方式):
1 | %PCL_ROOT%\bin;%PCL_ROOT%\3rdParty\VTK\bin;%PCL_ROOT%\3rdParty\FLANN\bin;%OPENNI2_REDIST64%;%PCL_ROOT%\3rdParty\Qhull\bin;%PCL_ROOT%\3rdParty\OpenNI2\Tools |
以上步骤搞定之后,重启电脑来应用环境变量。
Visual Studio开发环境配置
Visual Studio的环境配置比较麻烦,经常一堆错误。因此,下面的步骤需要仔细的按照步骤做。
Visual Studio提供了两种编译模式:Debug和Release。Debug模式下,生成的应用程序中会插入许多的调试指令,因此调试起来及其方便,但是大幅度降低了程序的运行速度;Release模式便会提高程序的速度,但是调试相对较困难一些(具体的区别请自行去Baidu或者Google)。在某些需求下,可能需要处理大量的数据,因此需要使用Release模式生成应用程序。本教程将对两种模式分别进行配置,适应不同的需求。
首先打开Visual Studio,然后新建一个C++工程,我这里创建的C++工程名字是pcl_test
。具体创建过程在此不做赘述,如下图所示:
接下来,右键点击解决方案管理器
中的pcl_test
,然后选择属性
。这时便打开了项目属性窗口。
我们先来配置Debug模式。首先在窗口最上方选择Debug
,然后选择自己在下载点云库时候选择的平台,我这里选择x64
(注意这里一定不要选错),如下图所示:
接着点击该窗口左侧的VC++ 目录
,然后点击右侧的包含目录
右侧的下拉菜单,选择编辑...
,将以下目录填入窗口中:
- C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2\Include
- C:\Program Files\PCL_1_8_1\include\pcl-
1.8
- C:\Program Files\PCL_1_8_1\3rdParty\VTK\include\vtk-
8.0
- C:\Program Files\PCL_1_8_1\3rdParty\QHull\include
- C:\Program Files\PCL_1_8_1\3rdParty\FLANN\include
- C:\Program Files\PCL_1_8_1\3rdParty\Eigen\eigen
3
- C:\Program Files\PCL_1_8_1\3rdParty\Boost\include\boost-
1_64
注意:这里的C:\Program Files\PCL_1_8_1
是刚刚安装点云库的路径,根据刚刚安装点云的路径进行修改。同时还要注意高亮字体的版本问题,需要打开相关目录进行检查。比如我这里的vtk就是8.0
的,而boost是1.64
版本的。配置好之后点击确定
即可如下图所示:
然后点击右侧的库目录
右侧的下拉菜单,选择编辑...
,将以下目录填入窗口中:
- C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2\Lib
- C:\Program Files\PCL_1_8_1\3rdParty\VTK\lib
- C:\Program Files\PCL_1_8_1\3rdParty\Qhull\lib
- C:\Program Files\PCL_1_8_1\3rdParty\FLANN\lib
- C:\Program Files\PCL_1_8_1\3rdParty\Boost\lib
- C:\Program Files\PCL_1_8_1\lib
同样需要注意路径问题,配置好之后点击确定
即可,如下图所示:
然后点击属性页中的C/C++
下的预处理器
,点击右侧的预处理器定义
右侧的下拉菜单,选择编辑...
,添加如下两条定义:
1 | _SCL_SECURE_NO_WARNINGS |
然后再点击预编译头
,将右侧的预编译头
设置为不使用预编译头
。这个设置可以依据自己的习惯决定,可以省略。
接着点击属性页中的链接器
下的输入
,点击右侧的附加依赖项
右侧的下拉菜单,选择编辑...
,将如下文件名填写到窗口中:
1 | vtknetcdf_c++-gd.lib |
注意:这些文件名中涉及到版本问题。libboost_atomic-vc141-mt-gd-1_64.lib
等文件中的vc141
、1_64
等文字需要到C:\Program Files\PCL_1_8_1\3rdParty\Boost\lib
文件夹下进行确认后修改;vtkalglib-8.0-gd.lib
等文件中的8.0
需要到C:\Program Files\PCL_1_8_1\3rdParty\VTK\lib
文件夹下进行确认后修改。同样,这两个路径根据自己电脑的安装情况而定。
这时,点击确定,我们在Debug模式下的点云开发环境就配置完成了。去网上找个实例代码粘贴,如果成功编译运行就代表配置成功了。
接下来说一下Release模式的配置。还是右键点击解决方案管理器
中的pcl_test
,然后选择属性
,然后在窗口最上方选择Release
,然后选择自己在下载点云库时候选择的平台。
然后按照Debug模式的配置方式依次配置,只是链接器
下的输入
中的附加依赖项
中的文件列表不相同,需要填写为下面的文件:
1 | pcl_common_release.lib |
同样需要注意版本问题。
这样,我们的Debug模式和Release模式就全部配置完成了,根据自己的需要选择即可。为了减少其他工程配置的负担,可以将这些配置保存为属性表,方法可以自行搜索,在此就不做赘述了。