zoukankan      html  css  js  c++  java
  • Window 10 PCL-1.91+VS2017 源码编译以及安装pcl

     

            (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等库,后续可能需要。

     
     
     
         
  • 相关阅读:
    提升键盘可访问性和AT可访问性
    2个小技巧
    设计模式(6): 数据抽象与业务封装
    目录
    医疗经济学
    医疗场景下的行为经济学(三)
    抗体、免疫
    医疗场景下的行为经济学(二)
    医疗场景下的行为经济学(一)
    单身社会如何生活-日本纪录片ガイアの夜明け系列
  • 原文地址:https://www.cnblogs.com/codeAndlearn/p/11607664.html
Copyright © 2011-2022 走看看