• VS2012编译PCL1.70的过程


    以防博主删除文档,重新copy一遍...

    关于个人的几个注意事项:

           对于boost,可以使用vc100的库,来编译VC110的代码;

           对于确实的包含,一个一个添加,要耐心等待!!!

    原文链接:http://blog.csdn.net/silangquan/article/details/953308

    PCL简介

    PCL是Point Cloud Library的缩写,是一个用于处理二维图像,三维深度图像和三维点云的C++库。该库是完全开源的,可免费用于商业和学术研究。
    官方网站:http://pointclouds.org/

    PCL的用途:



    下面对最新版的PCL库进行 编译。

    环境:windows7 32bit

    VS2010

    cmake2.8

    TortoiseSVN 1.8


    1.安装第三方依赖库

    官网上已经给出了一些安装包。下载地址:http://pointclouds.org/downloads/windows.html

    记住下好对应系统的安装包。

    Eigen无法正常下载,需要去官网下载:http://eigen.tuxfamily.org/index.php?title=Main_Page

    我下载的实3.1.3的版本,下载zip包,直接解压到C:Program Files,把文件夹名字改成eigen。

    其他的三方库直接双击安装就可以了。


    2.用cmake构建项目

    创建

    C:Program FilesPCL

    C:Program FilesPCL runk

    然后用TortoiseSVN把pcl的源码down下来,svn地址是: http://svn.pointclouds.org/pcl/trunk 



    打开cmake,开始构建。

    将trunk文件夹下的CMakeLists.txt托到cmake里,先Configure,选择Visual Studio 10,然后Generate。

    正常的话应该是这样:



    有问题的话根据报错信息进行修改,大部分是第三方依赖库没有装好。


     双击PCL.sln导入工程到VS2010,编译,发现全是error - -

    boost库很多东西都没找到.

    在网上搜了很久,发现问题是CMakeLists没写好.1.50版本的Boost库没办法识别.

    最快的解决方法:卸载BOOST1.50,去http://ftp.jaist.ac.jp/pub//sourceforge/p/po/pointclouds/dependencies/ 下载Boost-1.49.0-vs2010-x86.exe安装后重复上面的步骤,生成的项目就正确了。

    Build一下ALL_BUILD, 然后去打个盹,回来发现报错:

    Error 18326 error C2664: 'std::_Tree_const_iterator<_Mytree>::_Tree_const_iterator(const std::_Tree_const_iterator<_Mytree> &)' : cannot convert parameter 1 from 'std::_Tree_const_iterator<_Mytree>' to 'const std::_Tree_const_iterator<_Mytree> &' D:VS2010VCincludeutility 163

    坑爹 的~

    继续搜索解决方法....

    修改一个位置: trunk/recognition/src/ransac_based/obj_rec_ransac.cpp

    540: pair<set<ordered_int_pair>::iterator, bool> res = ordered_hypotheses_ids.insert (id_pair);

    ->540: pair<set<ordered_int_pair, bool(*)(const ordered_int_pair&, const ordered_int_pair&)>::iterator, bool> res = ordered_hypotheses_ids.insert (id_pair);

    再次重新cmake->导入工程->build ALL_Build




     注意debug和realse版本都要编译一遍,而且要全部编译通过.


    然后再把INSALL编译一下,debug和realse版本都要编译一遍.



    完全编译完成之后,C:Program FilesPCLlib中就有生成了编译好的lib库了 .




    当然还可以自己去编译 一下它给的一些test,不过需要自己编译GTest库.


    这样,PCL就 算编译好了.



    如何在Windows环境中搭建PCL—Point Cloud Library开发环境


    原文链接:http://shitou7630.blog.163.com/blog/static/3269953620126176843621/

    如何快速构建PCL应用程序

    使用CMake

    1. 编写PCL代码 包含PCL的头文件,使用PCL的函数和数据结构构建简易的界面实现可示化。
    2. 运行CMake_GUI

    直接使用ConfigureGenerate工具,你可以在界面上找到相应的按钮。

    1. 行Visual Studio 调试程序

    在使用CMake编译完成之后就生成了一个 Visual Studio 2010解决方案当中有三个项目,其中两个是辅助工程。

    1. 注意事项

    使用Visual Studio

    1. 路径构建
    2. 库文件查找
    3. 调试运行
    4. 改正错误

    库文件与动态库的配置

    1. 活页夹
    2. Windows寻址方式

    代码剖析

    PCL_Write

    头文件包含:iostreampcd_io.hpoint_type.h
    数据类型: pcl父类,PointCloud模板类,PointXYZRGB点数据类。。。。细节处理:

    1. 初始化点云结构

    pcl::PointCloud cloud;
    按照对应的数据要求填充cloud数据,像widthheightis_dense(是否稠密),通过resize函数应用相应的参数对数据进行更新。
    cloud
    是一个PointCloud数据模板,可以通过更新其xyzrgb属性来更新殿云数据

    1. 数据文件输出

    最后用户通过pclio接口中的savePCDFileASCII将数据以ASCII码的形式存储在pcd文件中

    cloud_Viewer

    这是一个查看有PCL_writer保存的pcd数据的Console程序从头文件中我们就可以看到许多都包含了可视化的元素,如visualization/cloud_viwer.h,pcl/io/io.h,pcl/io/pcd_io.h

    pcl::visualization::PCLVisualizer
    pcl::PointCloud::Ptr
    pcl::io::loadPCDFile(string name, PointXYZRGB *cloud)
    pcl::visualization::CloudViewer
    showCloud(PointXYZRGB *cloud)方法
    runOnVisualizationThread( void function() )

  • 相关阅读:
    解决Vss链接问题清除Windows共享登录的用户名密码记录(转)
    C# 激活正在运行的程序
    Log4Net 使用方法
    对Javascript闭包的一些理解
    根据数据库获取表名集合,根据表名获取字段信息
    C#引用类型和值类型的区别(转)
    c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
    理解VC工程文件类型
    MFC中的UpdateData()
    字节对齐
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200402.html
Copyright © 2020-2023  润新知