1. 程式人生 > >PCL點雲庫介紹及專案配置

PCL點雲庫介紹及專案配置

關於PCL點雲庫,大家百度的時候可以找到很多相關的介紹,反正一堆專業性概念,相關的技術層面以及一些強大的應用敘述云云,不過關於這些小編實在不感冒,能先把這個工具好好用起來再說吧。關於PCL相關的論壇及專業問題討論,大家需要的可以在中國PCL線上論壇中進行討論與學習資源的下載,當然這不是唯一的,如果英語水平過關的話大家可以去官網國際論壇http://www.pcl-users.org/中進行學習。下面來簡單介紹下啥是PCL吧...

一、PCL

請允許我用十分通俗的語言來描述PCL這個強大的專業工具:它就是用來建模型滴、三維呈現滴、以及強大的分析滴,而它的處理物件是一堆的點,成千上萬的點。它是一個基於C++的開源類庫,可以整合到我們用於模型建模等相關的程式系統中,十分方便也很好用。關於PCL的相關教程好像不是很多,最流行的一本是由北京航空航天大學出版社出版的,由朱德海、郭浩老師編寫的《點雲庫PCL學習教程》。這本書介紹了PCL類庫的相關基礎與例項案例的程式設計,對於初學者是很有用的,不過要細細理解每一個例子裡每一行程式碼的意義,我在學習PCL的過程中的理解就是千萬不能照搬照抄,對於工具我們只能用工具的方式去學習,面對實際應用還是思想分析主導。

二、PCL專案配置

PCL程式的使用請先下載CMake,本人使用VS2008,C++以及64位-Win7系統來進行PCL程式的編寫除錯。 關於PCL的程式請準備兩個主要檔案,分別是PCL程式的cpp檔案和CMakeList檔案,前者是我們的程式程式碼,後者則是專案配置的配置資訊。 下面將以一個實際專案生成的過程來敘述: 第一步:根據你的程式需要編寫好cpp程式碼,這裡我就引用書裡面的例子了:
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;
 
typedef pcl::PointXYZ PointType;

int 
main ()
{
	/* start view */
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::PCDReader reader;
    pcl::visualization::CloudViewer viewer("my viewer");
    viewer.showCloud(cloud);
	/* view  end */


    system("pause");    
    return 0;
}
第二步:寫好你的配置資訊CMakeList.txt檔案
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(viewer)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (viewer viewer.cpp)
target_link_libraries (viewer ${PCL_LIBRARIES})

第三步:可以將兩個檔案放在同一個資料夾下,我的是source資料夾 第四步:開啟CMake,發現有三個輸入框,分別是(1)Where is the source code: (2)Where to build the binaries:(3)Search: 第一個是原始檔的目錄,原始檔指的就是source資料夾,裡面有cpp和CMakeList檔案,第二個是問你生成的程式放哪裡,你自己設定就好了,第三個別管了 第五步:按下牛逼的Configure,這裡會彈出編譯設定提示框,如果你是64位機器和VS2008 就選擇相應的選項就好了。一直Configure,當不再出現錯誤(沒有紅色行)的時候就按Generate。此時在你設定的目錄下就有了對應的程式工程檔案了。 第六步:雙擊開啟工程檔案,除錯編譯執行,這時候如果是VS2008,你肯定要崩潰了,尼瑪的確實dll?好,下載個dll覆蓋一下試試,沒用,刪了程式重新生成一下吧,還是木 有用,相信現在很多人已經要掛了的節奏了。小編查了很多資料,最後發現問題不是出在缺少dll的問題而是除錯方法上,請不要使用Debug或者Release除錯,請使用RelWithDebInfo除錯方案,然後會彈出一個exe路徑設定,請選擇瀏覽然後在專案工程檔案中有一個與除錯方式同名的RelWithDebInfo資料夾,選擇裡面的exe就好了。 第七步:觀賞結果。