ubuntu14.04下配置使用openCV3.0


[操  作  系  統]    Ubuntu 14.04 LTS

[OpenCV版本]      3.0.0-beta

[Eclipse 版 本]    3.8.1

需要知識:

  • Linux系統shell命令基礎
  • 編譯原理基礎知識,預編譯->編譯->匯編->鏈接
  • make 、cmake知識
  • IDE使用經驗
  • gcc,g++編譯器知識

一、編譯安裝opencv3.0

1. 准備環境

  直接編譯安裝opencv一般是會報錯的,有很多依賴工具需要先安裝。主要是:cmake, build-essential, pkg-config, python-dev, python-numpy等,視自己情況而定。 

  $ sudo apt-get install build-essential cmake libopencv-dev libgtk2.0-dev pkg-config python-dev python-numpy

2. 下載opencv3.0源碼

  直接去opencv.org(github) 上下載linux源碼包:

  $ wget https://github.com/Itseez/opencv/archive/3.0.0-beta.zip

3. 解壓組織、編譯、安裝

  解壓文件,新建一個文件夾用於安放編譯結果,然后安裝(選擇安裝在/usr/local下面)

  $ unzip opencv-3.0.0-beta.zip
  $ cd opencv-3.0.0-beta
  $ mkdir release
  $ cd release
  $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON 
      -D WITH_QT=ON -D WITH_OPENGL=ON .. //注意CMakeList.txt在上一層文件夾   $ make -j $(nproc) // make -j 多核處理器進行編譯(默認的make只用一核,很慢),$(nproc)返回自己機器的核數   $ make install //把編譯結果安裝到 /usr/local的 lib/ 和 include/下面

4. 環境配置

  可編輯文本配置部分:/etc/ld.so.conf.d/ 添加 opencv.conf 文件,記錄庫安裝位置;更新配置

  $ cd /etc/ld.so.conf.d
  $ sudo vi opencv.config
  // insert "/usr/local/lib"    :q
  $ sudo ldconfig

  有的地方說,需要配置/etc/bash.bashrc 中PKG_CONFIG_PATH 環境變量,貌似不需要。

  (貌似,上面的opencv.conf都不用配置。只要 make install 就會在/usr/local/lib/pkgconfig下面產生opencv.pr的包含、鏈接配置)。

  檢查包含、鏈接配置是否正確:

  $ pkg-config opencv --cflags --libs
  $ -I/usr/local/include/opencv -I/usr/local/include  /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so     /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgcodecs.so /usr/local/lib/libopencv_imgproc.so /usr/local/l    ib/libopencv_ml.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_shape.so /usr/local/lib/libopencv_stitch    ing.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videoio.so /usr/local/l    ib/libopencv_videostab.so

二、使用opencv庫

1. 命令行形式

  直接編寫C 或者C++ 程序,然后分別用gcc,g++編譯器生成可執行程序。

  1) C程序版: 

  #include <highgui.h>

  int main(int argc, char **argv)
  {
          IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR);
          cvNamedWindow("Image_show",CV_WINDOW_AUTOSIZE);
          cvShowImage("Image_show",img);
          cvWaitKey(0);
          cvReleaseImage(&img);
          cvDestroyWindow("Image_show");
          return 0;
  }

  編譯過程:

  $ gcc test.c -o test `pkg-config opencv --cflags --libs`

  2) C++程序版:

  #include <opencv2/opencv.hpp>
  using namespace cv;

  int main( int argc, char** argv )
  {
    Mat image;
    image = imread( argv[1], 1 );
    if( argc != 2 || !image.data )
    {
        printf( "No image data \n" );
        return -1;
    }
    namedWindow( "Display Image", WINDOW_AUTOSIZE );
    imshow( "Display Image", image );
    waitKey(0);
    return 0;
  }

  編譯過程:  

  $ g++ first.cpp -o first `pkg-config opencv --cflags --libs`     // 包含、鏈接參數一定要放在后面

2. CMake運行形式

  cmake 是先將程序所需的依賴、原料組織起來,產生Makefile,然后在又make來編譯生成可執行程序。最重要的就是編寫CMakeList.txt文件。以上文C++程序為例,CMakeList.txt為:

  cmake_minimum_required(VERSION 2.8)
  project( first )
  find_package( OpenCV REQUIRED )
  add_executable( first frist.cpp )
  target_link_libraries( first  ${OpenCV_LIBS} )

  然后,CMake,再make: 

  $ cmake . 
  $ make
  $ ./first

3. IDE開發工具

  在IDE工具(如VS,Eclipse)中利用opencv庫,和以上兩種方法考慮的地方一樣,都是要配置好include 和 lib 部分。

  具體Ubuntu下用Eclipse的方法,下面繼續。

三、eclipse下C++開發環境

1. 安裝eclipse

  Ubuntu下安裝很簡單,直接在software center里就有。或者直接命令行apt-get install

2. 配置C++開發環境

  打開eclipse,在help 菜單下選擇 Install new software。打開的install對話框中,work with下拉菜單選擇Indigo Update Site - http://download.eclipse.org/releases/indigo/源。網絡刷新后:

  1) Collaboration中選擇Mylyn Context Connector:C\C++ Development組件,然后安裝,重啟eclipse;

  2) 繼續回到install對話框,在Programming Language中選擇C\C++相關的組件,如Development Tools,Development Tools SDK,CDT Visual C++ Support等。

  安裝好以上組件之后,就可以在eclipse里面新建C++工程。

3. opencv實踐

  1) 新建一個空的C++工程,然后添加source folder,source file;將上文的C++讀圖代碼拷貝進去。這時肯定會提示有很多問題,編譯肯定出錯。

  2) 接下來就是配置好包含文件和鏈接庫。右擊project explorer里面的工程,打開properties,點開C\C++ Build選項,再點擊設置Setting。

    a) 設置包含include。在GCC C++ Compiler下面的includes里面添加include path:/usr/local/include,/usr/local/include/opencv,/usr/local/include/opencv(視自己的代碼選擇include,保險的話,三個都設置上)。

    b) 設置鏈接庫。 在GCC C++ Linker下面的Libraries里面,先添加search path為:/usr/local/lib;然后逐個在Libraries中添加opencv_core, opencv_highgui, opencv_imgproc, opencv_imgcodes(貌似是新多出來的一個,不加要報錯)。

  3) 配置完畢,project --> Build All。另外說明,如果用IDE里面的屬性來添加程序參數,文件路徑名最好用絕對路徑(其當前路徑應該為你的項目一級目錄,跟據這個設相對路徑亦可)。

Reference:

  [1] Rodrigo Berriel's website: http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/

  [2] Using OpenCV with Eclipse: http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM