PCL
安装
-
下载PCL的安装包和
pdb
文件,即PCL...AllInOne...exe
和pcl...pdb...zip
, -
安装
.exe
文件- 我安装在了
D:\CS\PCL
中,后续所有操作都基于此 - 安装时注意将PCL添加到系统环境变量
- 安装结束后右键
此电脑
->属性->高级系统设置->环境变量,查看x下面四个环境变量是否已经建立
- 我安装在了
-
将
.zip
中的所有.pdb
文件复制到安装路径的bin
文件夹。 -
添加环境变量,包括如下路径,其中
D:\CS\PCL
替换为自己的安装路径
D:\CS\PCL\bin
D:\CS\PCL\3rdParty\VTK\bin
D:\CS\PCL\3rdParty\FLANN\bin
D:\CS\PCL\3rdParty\Qhull\bin
D:\CS\PCL\3rdParty\Boost\lib
C:\Program Files\OpenNI2\Tools
C:\Program Files\OpenNI2\Redist
其中,PCL1.12会自动安装OpenNI2
,早期版本需要手动安装,一般其安装包在...3rdParty\OpenNI2
中。
最后,重启电脑。(安装时,PCL提示说关闭所有程序免重启,我没试过,希望试过的朋友知会一下)
配置VS
1 打开VS,新建空项目(C++),编译环境为Debug,x64,添加源文件src.cpp
。
2 配置VC++目录:右键解决方案名称->属性->VC++目录,编辑其中的包含目录
和库目录
。
其中包含目录添加
D:\CS\PCL\include\pcl-1.12
D:\CS\PCL\3rdParty\Eigen\eigen3
C:\Program Files\OpenNI2\Include
D:\CS\PCL\3rdParty\VTK\include\vtk-9.1
D:\CS\PCL\3rdParty\Qhull\include
D:\CS\PCL\3rdParty\FLANN\include
D:\CS\PCL\3rdParty\Boost\include\boost-1_78
库目录 中添加以下6个目录:
D:\CS\PCL\lib
C:\Program Files\OpenNI2\Lib
D:\CS\PCL\3rdParty\VTK\lib
D:\CS\PCL\3rdParty\Qhull\lib
D:\CS\PCL\3rdParty\FLANN\lib
D:\CS\PCL\3rdParty\Boost\lib
3 C/C++设置:仍在属性页面,C/C++
->预处理器->预处理器定义,将其改为
BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE
同样在C/C++
选项卡中->所有选项->SDL检查,选择为否。
4 设置附加依赖项:链接器->输入->附加依赖项
将PCL安装路径\lib
文件夹和\3rdParty\VTK\lib
中所有的.lib
文件填入其中,这个实在太费劲了,可以进入命令行,可用dir
命令快速选出以d.lib
为后缀的文件
D:\CS\PCL\lib>dir /b *d.lib
pcl_commond.lib
//...内容太多,就不在这水字数了
D:\CS\PCL\3rdParty\VTK\lib>dir /b *d.lib
vtkcgns-9.1d.lib
vtkChartsCore-9.1d.lib
vtkCommonColor-9.1d.lib
//...
以d.lib
结尾,表示debug
模式下的附加依赖项,不以d
结尾的是release
模式的
然后复制粘贴到附加依赖项
中。
测试
斯坦福兔子是大家经常用来做测试的一个扫描模型。
在src.cpp
中写入
#include<iostream>
#include<pcl/io/pcd_io.h>
#include<pcl/visualization/cloud_viewer.h>
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {
viewer.setBackgroundColor(0.5, 0.9, 0.5); //设置背景颜色
}
int main() {
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
char strfilepath[256] = "rabbit.pcd";
pcl::io::loadPCDFile(strfilepath, *cloud);
pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象
viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
system("pause");
return 0;
}
点击F5
运行,结果如下。
如果找不到OpenNI2.dll
,就去C:\Program Files\OpenNI2\Tools
中把OpenNI2.dll
放置到项目的debug文件夹中。