1、開發環境的準備html
一、編程環境爲ubuntu 14.04 64bit;python
二、Opencv的安裝c++
1)使用從源代碼安裝的模式, 安裝的版本號爲opencv-2.4.12,其下載地址爲http://opencv.org/downloads.html編程
2)安裝依賴項,以下ubuntu
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev網絡
3)解壓下載的OpenCV目錄,而後進行編譯和安裝函數
mkdir build
cd build
cmake ..
make
sudo make install工具
安裝後的頭文件位置位於學習
安裝後的庫文件位於測試
備註:Linux下的c++編譯工具抽象程度的遞增,g++,makefile,cmake。
三、PCL(Point cloud library)的安裝
因爲深度相機採集的數據就是點雲數據,PCL的官網地址爲http://pointclouds.org;
針對14.04及如下的版本安裝方式,須要私有源來安裝(注意不一樣網絡可能致使安裝不一樣)
1 sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
2 sudo apt-get update
3 sudo apt-get install libpcl-all
因爲在16.04當中,PCL庫已經在公有源當中,採用直接安裝
sudo apt-get install libpcl-dev pcl-tools
注意,在16.04當中PCL的配置彷佛有bug,須要在cmakelist中添加一條指令修復。
頭文件位於
庫文件暫未找到??
2、編寫一個測試程序
首先,構建一個CMake項目,在Linux下的CMake項目一般由幾個文件夾組成,以下
假設根文件夾是RGB-D_SLAM,
裏面的子文件夾目錄
bin目錄:存放生成的二進制可執行程序;
src目錄:源代碼存放目錄;
include目錄:頭文件存放目錄;
lib目錄:存放編譯好的庫文件目錄;
有了以上目錄,那麼經過CMakeLists.txt文件把目錄結構告訴cmake工程,由於cmake在生成代碼時,會去讀取這個文件,並按照它裏面的格式來編譯你的代碼,全部要
touch CMakeLists.txt
並寫入以下內容:
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #設定版本
PROJECT( slam ) #設定工程名
SET(CMAKE_CXX_COMPILER "g++") #設定編譯器
#設定可執行二進制文件的目錄
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#設定存放編譯出來的庫文件的目錄
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#把庫文件目錄做爲鏈接目錄
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib)
#設定頭文件目錄
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include )
#增長子文件夾,也就是進入源代碼文件夾繼續構建
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )
備註:能夠學習CMake實踐電子書
注意庫文件和二進制的區別和聯繫:二進制就是能夠直接運行的程序啦,庫文件呢,就是爲這些二進制提供函數的啦。有main函數的代碼能夠編譯成二進制,其餘的則編譯成庫文件。連接時,把庫文件鏈到二進制上,就能夠運行。
下面實例聯繫:
在src目錄下新建一個文件main.cpp
下面要把這個源代碼生成一個二進制文件,則在src目錄下新建一個文件CMakeLists.txt
而後,回到根目錄下,執行以下操做
1 mkdir build 2 cd build 3 cmake .. 4 make
編譯經過就會在bin目錄下生成一個二進制文件。
這一課的主要目的就是爲了熟悉Linux下CMake項目的創建,以及OpenCV和PCL環境的創建。
總結:
CMakeLists.txt文件,把可執行文件的生成放在src目錄下
主函數要調用該庫文件,須要新建一個頭文件,而後在主函數文件裏面經過#include來包含該頭文件便可調用本身製做的庫文件