小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

PCL 1.8.0編譯、配置、VS2013

 Y忍冬草 2017-05-05

引言

pcl1.8.0,較pcl1.7和1.6多了不少算法,很多感興趣的方法都在pcl1.8中有所實(shí)現(xiàn)。當(dāng)pcl11.8.0rc1和rc2發(fā)布時(shí)就迫不及待的下載下來進(jìn)行使用,用了幾個(gè)月發(fā)現(xiàn)pcl1.8.0rc版有幾個(gè)bug無法解決,如:表面重建時(shí)無法映射紋理。得知2016/06/14 github 發(fā)布正式版pcl1.8.0時(shí),就立馬下載下來準(zhǔn)備編譯并記錄整個(gè)過程,感興趣的小伙伴可以參考。

pcl官網(wǎng)已經(jīng)有windows平臺(tái)下的編譯過程,現(xiàn)在我基于此教程編譯PCL1.8.0并配置。

PCL1.8.0源碼包下載

下載地址:https://github.com/PointCloudLibrary/pcl/releases
這里寫圖片描述

準(zhǔn)備工具

編譯器VS2013,CMakeGUI 3.3.2,系統(tǒng)版本win7 64位。
提示:軟件版本根據(jù)自己情況選擇,沒必要非要和博客中一致。

第三方依賴庫(kù)

第三方庫(kù) 用途 是否必須
Boost 用于智能指針等操作 必選
Eigen 用于矩陣運(yùn)算等 必選
FLANN 用于鄰域搜索等 必選
VTK 可視化庫(kù),用于顯示點(diǎn)云等 必選
Qt 用于圖像交互界面等 可選
QHULL used for convex/concave hull decompositions in surface 可選
OpenNI 用于獲取點(diǎn)云等 可選

提示:在編譯PCL1.8.0時(shí)請(qǐng)確保您已安裝了正確的第三方依賴庫(kù)。不能混合32位和64位代碼,并且不能混用不同編譯器編譯第三方庫(kù)。有些庫(kù)需要自己編譯,這篇博客里就不對(duì)如何編譯第三方依賴庫(kù)進(jìn)行講解了,只詳述PCL1.8.0的編譯過程。

編譯PCL1.8.0

官方編譯教程:http://www./documentation/tutorials/compiling_pcl_windows.php
提示:跟著官方教程操作即可成功。
(1) 將源碼包pcl-pcl-1.8.0.zip解壓到目錄:F:\pcl-1.8.0
提示:根據(jù)自己需要解壓即可,本博客一定程度上參考了官方教程。
(2)打開CMakeGUI
源碼路徑:F:/pcl-1.8.0
項(xiàng)目路徑:F:/pcl-1.8.0/build
如圖:
這里寫圖片描述
點(diǎn)擊configure,選擇合適的編譯器(VS2013 64位)
這里寫圖片描述

(3)出現(xiàn)無法找到Eigen庫(kù)
這里寫圖片描述
將變量EIGEN_INCLUDE_DIR對(duì)應(yīng)的值修改為Eigen庫(kù)所在目錄。
如:F:\Eigen\eigen3
重新configure
提示找不到Boost庫(kù),添加下面三個(gè)變量和相應(yīng)的路徑,重新configure。

BOOST_ROOT="F:\Boost"
Boost_LIBRARY_DIRS="F:\Boost\lib"
BOOST_INCLUDEDIR="F:\Boost\include\boost-1_59"
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

(4)修改安裝路徑
這里寫圖片描述
或者,打開CPackConfig.cmake文件,修改CPACK_INSTALL_PREFIX值為F:\PCL1.8.0
點(diǎn)Generate生成VS工程。
這里寫圖片描述
(5)打開PCL.sln
分別批生成Debug和Release版本,并分別安裝。
這里寫圖片描述
(6)Debug和Release版編譯、安裝成功
Debug
這里寫圖片描述
這里寫圖片描述
Release
這里寫圖片描述
這里寫圖片描述

這里寫圖片描述
(7)提示
Cmake構(gòu)建工程時(shí)可能會(huì)出現(xiàn)其他依賴庫(kù)缺失情況,一一補(bǔ)上就行。使用Cmake構(gòu)建工程成功,也可能在VS中編譯時(shí)會(huì)出現(xiàn)其他問題,根據(jù)提示也可以一一解決。整個(gè)編譯過程很耗時(shí),Debug和Release完全編譯一次要一個(gè)小時(shí)左右。如果需要All in One安裝包,在Cmake中勾選生成All in One包即可(特別費(fèi)時(shí)所以就沒勾選)。

配置

將下列路徑加入環(huán)境變量:

F:\PCL1.8.0C\bin;F:\PCL1.8.0C\3rdParty\FLANN\bin;F:\PCL1.8.0C\3rdParty\OpenNI2\Tools;F:\PCL1.8.0C\3rdParty\Qhull\bin;F:\PCL1.8.0C\3rdParty\VTK\bin;
  • 1
  • 1

測(cè)試Debug版

(1)打開VS2013新建項(xiàng)目,添加如下代碼

#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>


int user_data;

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor(1.0, 0.5, 1.0);
    pcl::PointXYZ o;
    o.x = 1.0;
    o.y = 0;
    o.z = 0;
    viewer.addSphere(o, 0.25, "sphere", 0);
    std::cout << "i only run once" << std::endl;

}

void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
    static unsigned count = 0;
    std::stringstream ss;
    ss << "Once per viewer loop: " << count++;
    viewer.removeShape("text", 0);
    viewer.addText(ss.str(), 200, 300, "text", 0);

    //FIXME: possible race condition here:
    user_data++;
}

int main()
{
    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile("example.pcd的位置", *cloud);

    pcl::visualization::CloudViewer viewer("Cloud Viewer");

    //blocks until the cloud is actually rendered
    viewer.showCloud(cloud);

    //use the following functions to get access to the underlying more advanced/powerful
    //PCLVisualizer

    //This will only get called once
    viewer.runOnVisualizationThreadOnce(viewerOneOff);

    //This will get called once per visualization iteration
    viewer.runOnVisualizationThread(viewerPsycho);
    while (!viewer.wasStopped())
    {
        //you can also do cool processing here
        //FIXME: Note that this is running in a separate thread from viewerPsycho
        //and you should guard against race conditions yourself...
        user_data++;
    }
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

(2)新建屬性表PCLCDebug
這里寫圖片描述
VC++目錄,添加包含目錄
這里寫圖片描述
VC++目錄,添加庫(kù)目錄
這里寫圖片描述
連接器,輸入,附加依賴項(xiàng)
提示:我是把所有的Debug依賴庫(kù)都加上,因?yàn)橛玫亩?,懶得去挑?
(2)最終結(jié)果
這里寫圖片描述

編譯和配置結(jié)束

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多