本人是一名大二的學生,在學校跟導師申請了一個國創項目,因為要用到點雲數據的處理,之前讀了很多論文、也瀏覽了很多博客,發現現在大部分人處理點雲數據都是利用的pcl點雲數據庫,所以開始了pcl的學習。順便也想通過寫這些博客記錄一下自己的學習歷程,由於是初學,完全是自己摸索,所以有不對的地方還請大神指正,歡迎與此相關的朋友一起來討論學習!
第一篇博客主要想跟大家分享關於pcl學習資料的獲取,以及環境的配置。推薦大家看《PCL點雲學習教程》這本書,里面是從頭講起pcl的環境如何搭建,而且不僅可以在windows下配置,還敘述了如何在Linux下如何搭建環境。因為這本書已經絕版了,網上的都是電子版的,但是大部分都不全,好不容易從師姐那里考到了全的電子版,這是雲盤的下載鏈接,http://pan.baidu.com/s/1cwCjVo,里面有兩個文件夾,一個是這本書的學習教程,一個是每一章節的代碼樣例。
獲取了學習資料就要開始配置環境,因為我之前安裝了vs2010,書中是以vs2008為基礎搭建的環境,其實兩個是一樣的,重點是要看好自己的vs是多少位的,32位?還是64位?因為不同位數的vs要搭配的pcl庫也是不一樣的。書中講述的配置環境這一部分很詳細,學習者按照里面的步驟來就可以,在這里想給大家提示幾點:
1、配置前的准備工作
配置環境前要先獲取下面說的4樣文件
它們的下載地址原文中也有說:如下鏈接(就是pcl的官網)
獲取到這四樣文件后就可以按照里面的步驟開始配置環境了。
在安裝時盡量都要安在c盤的默認路徑下面,不然后面使用camke編譯時還要自己修改路徑,會有些麻煩。
2、測試環境配置是否成功
環境配置完畢后,后面會有一個教程讓你測試是否成功配置,也就是輸出一個PCL的點雲文件,文件里的代碼還是從官網下載
做到這一步不知道大家有沒有疑問,為什么我們要用Cmake來進行編譯,而不是直接用vs進行編譯。用過vs的同學都知道他的強大,寫完代碼就可以點擊生成解決方案進行編譯,然后點擊運行就能彈出.exe文件進行測試,然而對於我們接下來要建立的pcl點雲工程,流程還是這個流程,但具體的步驟卻不同了。
為了能夠運行點雲程序,我們要先有一段代碼放在.cpp文件中,這段代碼就是我們先前寫好的代碼,還要有一個CMakeLists.txt文件,里面的內容主要是用來獲取pcl路徑的,(注意我剛剛寫的這一句話很重要,也就是說Cmake是用來獲取pcl頭文件的路徑的),具體的詳細分析,在教程里(2.4建立自己的pcl程序)中有講,想了解的可以自己去看。
具體的編譯步驟就按照文中寫的來做就可以:
在這里再給大家解釋一遍上圖中的流程,先用camke對source文件夾中的.cpp文件進行編譯,從而在camke bin文件夾中會生成這個項目的工程,找到其中的.sln文件,在vs中將他打開,打開后直接點擊生成解決方案,這個時候就可以生成.exe,生成結束后會在cmake bin中有一個Debug的文件夾,生成好的.exe程序就在這個文件夾里,直接點擊就可以運行了。
3、為何要使用cmake進行編譯
下面給大家先解釋一下為什么用cmake來進行編譯,如果我直接用vs打開寫好的代碼,然后編譯,vs會告訴你運行失敗,原因就是沒能找到pcl的頭文件,這是因為我們在vs中配置pcl庫時,並沒有將pcl的頭文件路徑添加進去,從而編譯的時候vs找不到你要用的文件的位置,程序自然也就生成不了。這個時候有人就會問,那為什么我們不自己把頭文件的路徑添加進去呢?這個確實是可以的,但是只做這一步是不夠的,我們還需要自己手動建立兩個屬性表(分別是Debug和Release),分別對應放在工程的屬性管理(Debug和Release)兩個文件夾中,里面的內容是要自己手動寫的,大概有幾十個文件的路徑要添加,雖然麻煩,但也是一件一勞永逸的事情,因為一旦你建立好了,以后每一次只要把這兩個文件添加進新的工程中就可以。
也許你會問我,那我為什么還要用camke來進行編譯,原因是我在了解到上述方法前已經將cmake配置好並且成功生成了.exe程序,可以運行,雖然用camke每次都要走一遍整個流程,但是熟悉后也沒覺得有多麻煩,所以就不想再改變了。大家可以根據自己的習慣來選擇生產pcl程序的方式。
第一次寫博客,如果有不詳盡的地方還請諸位見諒。