1. 程式人生 > >Ubuntu 14.04 安裝 OpenCV-3.2.0

Ubuntu 14.04 安裝 OpenCV-3.2.0

安裝 OpenCV

  • OpenCV 提供了大量影象開源演算法,是計算機視覺中使用極廣的影象處理演算法庫。
    • 安裝依賴項

      [compiler]$ sudo apt-get install build-essential 
      [required]$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
      [optional]$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22
      -dev
    • 解壓

      $ sudo unzip opencv-3.2.0.zip    
      $ sudo tar -xzvf opencv_contrib-3.2.0.tar.gz   
    • 編譯安裝

      $ cd opencv-3.2.0
      $ sudo mkdir build
      $ cd build 
      $ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib-3.2.0/modules/> ..

      在此過程中會出現下載 ippicv_linux_20151201.tgz

      或者 protobuf-cpp-3.1.0.tar.gz 包失敗的情況,若 下載失敗 或者 file DOWNLOAD HASH mismatch

      ippicv_linux_20151201.tgz 檔案複製並替換 opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ 路徑下的同名檔案;
      protobuf-cpp-3.1.0.tar.gz 複製並替換 opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/ 路徑下的同名檔案。
    • 執行安裝

      $ sudo make -j4
      $ sudo make install
    • 使用命令檢視安裝版本

      $ pkg-config --modversion opencv
  • 例項演示【原始碼包下載

    • CMakeLists.txt

       cmake_minimum_required(VERSION 2.8)
       project( DisplayImage )
      
       # 尋找OpenCV庫
       find_package( OpenCV 3.2 REQUIRED )
       # 新增標頭檔案
       include_directories( ${OpenCV_INCLUDE_DIRS} )
      
       add_executable( DisplayImage DisplayImage.cpp )
      
       # 連結OpenCV庫
       target_link_libraries( DisplayImage  ${OpenCV_LIBS} )
    • DisplayImage.cpp

       #include <opencv2/core/core.hpp>
       #include <opencv2/highgui/highgui.hpp>
      
       #include <stdio.h>
       #include <iostream>
      
       using namespace std;
       using namespace cv;
      
       int main(int argc, char** argv )
       {
          if ( argc != 2 )
          {
              std::cout << "usage: DisplayImage <Image_Path>" << std::endl;
              return -1;
          }
      
          Mat image;
          image = imread( argv[1], 1 );
      
          if ( !image.data )
          {
              std::cout << "No image data..." << std::endl;
              return -1;
          }
          namedWindow("Display Image", CV_WINDOW_AUTOSIZE );
          imshow("Display Image", image);
      
          waitKey(0);
      
          return 0;
       }
    • 編譯和執行程式

      $ cd build 
      $ cmake ..
      $ make
      $ ./DisplayImage <path to image>
    • 檢視可執行檔案的依賴庫

      $ ldd ./DisplayImage