PCL1.9.1下载与配置+Visual Studio2017
PCL1.9.1下载与配置+Visual Studio2017
1.PCL1.9.1下载
官网下载:
1.百度搜索GitHub,点击进入GitHub主页
2.在如下界面搜索栏中输入pcl,按回车键
3.点击下图所示链接:
4.在新的界面中下拉至如下图所示区域,并点击图中所指链接:
5.在新的界面中下拉至下图所示处:
根据个人电脑系统版本位数进行选择(压缩包和可执行文件均可),博主电脑为64位,故以此为例进行配置
2.安装
傻瓜式安装,双击下载的“PCL-1.9.1-AllInOne-msvc2017-win64.exe”进行安装:
点击下一步:
选择第二个:Add PCL to the system PATH for all users,点击下一步
根据个人喜好选择安装路径(博主选择路径如下):
以下库包默认全选点击安装即可:
安装过程中会跳出如下OpenNI安装界面,选择路径./3rdParty/OpenNI2/安装,(为了之后方便配置环境):
安装完毕。
解压“pcl-1.9.0-pdb-msvc2017-win64.zip”,将解压得到的文件夹中的内容添加到你的PCL安装目录…\PCL 1.9.0\bin中。
pcl安装到此结束。
PCL1.9.1系统环境配置
环境配置:
系统环境配置
计算机->属性->高级系统变量->环境变量,双击Path,
添加如下路径(路径根据自己的安装目录添加)
添加完毕后,注销电脑使配置生效。
3.VS中PCL1.9.1开发环境配置
1.打开VS2017,新建空项目:
输入名字,选择生成文件夹,然后选择“空项目”,直接确定就可以了。
首先要确保自己的vs编译环境是X64,我这里选择的是Debug版本,Release版本配置只有一步不一样,其他都是一样的。(Release版本与Debug版本区别在于Release斑斑运行起来不显示中间变量,速度比Debug快)
以下为项目环境配置(一定要仔细!):
右键点击项目->属性->通用属性->VC++目录—>包含目录中添加红框中的7个目录(博主的OpenNI库安装在PCL1.9.1的目录中的,读者注意检查自己的目录是否正确):
…PCL 1.9.1\include\pcl-1.9
…PCL 1.9.1\3rdParty\Boost\include\boost-1_68
…PCL 1.9.1\3rdParty\Eigen\eigen3
…PCL 1.9.1\3rdParty\FLANN\include
…PCL 1.9.1\3rdParty\Qhull\include
…PCL 1.9.1\3rdParty\OpenNI2\Include
…PCL 1.9.1\3rdParty\VTK\include\vtk-8.1
然后是添加lib目录,在通用属性—>VC++目录—>库目录中添加如下6个目录:
…PCL1.9.1\PCL 1.9.1\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\Boost\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\FLANN\lib
…PCL 1.9.1\3rdParty\OpenNI2\Lib
…PCL1.9.1\PCL 1.9.1\3rdParty\Qhull\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\VTK\lib
在C/C++—>预处理器—>预处理器定义中添加以下内容:
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
将C/C++—>所有选项—>SDL检查改为否。
最后:在通用属性—>链接器—>输入—>附加的依赖项中添加对应的.“lib”文件,主要是添加PCL的“.lib”文件和第三方库中VTK的“.lib”文件。文件有很多,列表附在文章末尾。 检查你的lib文件和我给出的静态链接库版本一不一样,如果不一样这里给出一个快速获取所有静态链接库文件名的方法,方法也附在文章末尾。
PCL的配置到此结束,下面来测试一下:
新建一个main.cpp,代码如下:
#include"stdafx.h"
#include<pcl/visualization/cloud_viewer.h>
#include//标准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中支持的点类型头文件。
using namespace std;
using namespace pcl;
void viewerOneOff(visualization::PCLVisualizer& viewer) {
viewer.setBackgroundColor(0, 0, 0); //设置背景颜色为黑色
}
int main() {
PointCloud::Ptr cloud(new PointCloud);
char strfilepath[256] = “rabbit.pcd”;
if (-1 == io::loadPCDFile(strfilepath, *cloud)) {
cout << “error input!” << endl;
return -1;
}
cout << cloud->points.size() << endl;
visualization::CloudViewer viewer(“Cloud Viewer: Rabbit”); //创建viewer对象
viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
system(“pause”);
return 0;
}
斯坦福兔子rabbit.pcd 点云文件可百度下载
运行结果如下:
可能遇到的报错问题
1.无法解析的外部符号:
这里是引用
1>vtkCommonCore-8.0-gd.lib(vtkWin32OutputWindow.obj) : error LNK2001: 无法解析的外部符号 __imp_MessageBoxA
1>vtkCommonCore-8.0-gd.lib(vtkWin32OutputWindow.obj) : error LNK2019: 无法解析的外部符号 __imp_GetStockObject,该符号在函数 “protected: static int __cdecl vtkWin32OutputWindow::Initialize(void)” (?Initialize@vtkWin32OutputWindow@@KAHXZ) 中被引用
…
解决办法:仔细检查上述库目录,连接器附加依赖性等内容是否全部添加完整!!!(很重要,此问题错误几乎都是添加内容不完整导致)
2.遇到“XXX被声明为已否决”
直接双击属性表的根目录Debug|X64
然后更改SDL检查为否:
3.检测到XXX的不匹配项:值…(如下图)
解决方法:
1.首先检查你属性表中:链接器—输入—附加依耐项中配置的.lib文件是不是你所用的debug/release版本;
2.如果第一步没错,尝试以下步骤:
直接双击属性表的根目录Release|X64(根据你使用的是Debug还是Release)。找到运行库,更改为其他几个试一下。
3.第三方库flann报错:
添加头文件#include <pcl/registration/icp.h>编译的时候可能会遇到如下报错:
1>…\flann\algorithms\dist.h(523): error C3861: “pop_t”: 找不到标识符
1
解决方法:
(注由于要对第三方库的头文件进行修改,建议先备份一下原头文件,其路径…\PCL 1.9.1\3rdParty\FLANN\include\flann\algorithms\dist.h)
开始解决:
双击该行输出直接打开dist.h头文件;
将第503行的typedef unsigned long long pop_t;移动到第480行前面:

输入:dir /b *.lib *>lib.txt 回车
这时打开你对应路径的目录,多了一个lib.txt文件,里面存了你这个文件夹里所有链接库名字。
由于每一个Debug版本和Release版本的链接库是挨在一起的。写一个读取文档并对其分别保存就行了。
具体代码如下(主要功能是读取一个txt文件,将其中奇数行和偶数行单独输出到新的txt文档。):
#include
#include
#include
#include
using namespace std;
int main()
{
ifstream txtfile;//打开读取的文件
ofstream txt01;//保存的文件
ofstream txt02;//保存的文件
string temp;
int index = 0;//用于判断奇偶
}
总结
以上是生活随笔为你收集整理的PCL1.9.1下载与配置+Visual Studio2017的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 基于视觉的心率检测算法
- 下一篇: 颈椎病的防治与保健