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