(1)第三方库做了简单的了解,对于这些开源库的了解有助于更全面的了解PCL这个开源项目。
VTK是以及基于OPENGL封装,,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk,是常用的三维可视化开源库
boost 是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称,发起人是c++标准委员会,常见功能如下:
Regex
正则表达式库
Spirit
LL parser framework,用C++代码直接表达EBNF
Graph
图组件和算法
Lambda
在调用的地方定义短小匿名的函数对象,很实用的functional功能
concept check
检查泛型编程中的concept
Mpl
用模板实现的元编程框架
Thread
可移植的C++多线程库
Python
把C++类和函数映射到Python之中
Pool
内存池管理
smart_ptr
FLANN库全称是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近邻开源库。不但实现了一系列查找算法,还包含了一种自动选取最快算法的机制,在一个度量空间X给定一组点P=p1,p2, …,pn,这些点必须通过以下方式进行预处理,给第一个新的查询点q属于X,快速在P中找到距离q最近的点,即最近邻搜索问题。最近邻搜索的问题是在很多应用领域是一个重大问题,如图像识别、数据压缩、模式识别和分类.在高维空间中解决这个问题似乎是一个非常难以执行任务,没有算法明显优于标准的蛮力搜索。因此越来越多的人把兴趣点转向执行近似最近邻搜索的一类算法,这些方法在很多实际应用和大多数案例中被证明是足够好的近似,比精确搜索算法快很大的数量级
OpenI是一个基于网络的商务智能应用程序。是一个彻头彻尾的开发的解决方案,轻松可视化OLAP数据,关系型数据库管理系统,数据挖掘工具和直观的建立和发布交互式的报告,分析。它用于制作Web OLAP报表,可以部署在任何J2EE服务器中,支持交互式OLAP报表的发布。它能够使用关系型数据源和基于XMLA的数据源。是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展示,非常易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等
EIGEN 是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen是一个开源库,从3.1.1版本开始遵从MPL2许可,这个库只需要包含头文件就可以,因为它所有的开发都是基于STL。
glew,OpenGL扩展库是个简单的工具,用于帮助C/C++开发者初始化扩展(OpenGL扩展功能)并书写可移植的应用程序。GLEW当前支持各种各样的操作系统,包含Windows,Linux,Darwin,Irix与Solaris。
glew这个库在使用cmake3.12进行编译时候报错了,所以从对应的官网下载了zip文件,直接从git 上下载的文件是linux系统上运行的,一些脚本没法运行。
Qhull 用于计算三维点的凸包
(2)所需资料准备
pcl 源码 git_clone pcl-1.9.1 https://github.com/PointCloudLibrary/pcl.git
第三方库准备以及安装 pcl-1.8.1-pdb-msvc2017-win64.zip(包含使用所需的Qull flann VTK Boost eigen openni ),注意OPENNI需要安装,同时注意include文件的包含层次,尤其是对于eigen。
QT 的安装(之前配置opencv时候已经将对应的环境路径配置好了)
(3)Cmake gui编译配置
a.在gitclone 的文件夹中新建bin文件夹路径,如果在外边,会缺失一些库如下
config第一次报错出现的boost报错
添加boost库的引用
添加eigen 以及vtk 引用
vtk 如果没法添加,通过add entry添加
添加flann引用
添加Qhull 引用
编译还是提示缺失glew 库,又从glew下载了对应的zip文件
如此config就ok了,属于对应lib库的单独添加时候区分debug库与release库,有的二者区分是通过-dg和没有区分,有的是通过没有后缀和-s区分。
(4)Open project进行编译
首先进行allbuild编译所有的模块(157个成功无报错),然后install( 158个成功无报错),最后package(报错一个,set path ,cd 这个错误没有解决,但是后续环境配置成功了)打包到D盘。
(5)环境配置
(6)通过cmake gui 编译对于的pcl入门的源码
注意在vs打开时候需要以管理员的身份打开,直接点exe运行的时候需要以管理员的身份运行,否则会提示缺少pcl dll。
(7)总结反思
window 系统去跨平台的配置对应的git 源码之所以麻烦事由于开源的代码一般都是基于linux平台开发,里边的脚本以及cmake 使用相当方便。
其次window系统在安全性方面比较高,这就时候安装完对应的库之后还需要去给与对应的库以环境变量,需要set path 测试。
没有直接去编译VTK等库,后续可能需要。