1. 程式人生 > >Ubuntu下OpenCV的配置

Ubuntu下OpenCV的配置

Ubuntu18.04LTS下OpenCV的配置

配置過程同樣適用於Ubuntu Mate16.04 LTS 親測實用

本文大部分來自@blanklog的博文

安裝依賴包

sudo apt-get install build-essential            #[編譯器]
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev                                   #[必備] 
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev     #[可選] 

下載opencv

儘量安裝最新版本的opencv,可以直接去github下載最新的程式碼,可以避免報錯

Github-opencv

安裝opencv

將下載的原始碼包解壓,進入目錄,建立編譯目錄

cd opencv-master
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..     #編譯成release版本,安裝路徑/usr/local/
  • 順便一提可通過cmake-gui命令配置python,matlab等

之後進行make安裝

make -j4            #根據cpu核心來選擇
sudo make install

安裝完成測試

測試方法1

cd到opencv-3.4.1/samples/cpp/example_cmake目錄下 我們可以看到這個目錄裡官方已經給出了一個cmake的example我們可以拿來測試下 按順序執行

cmake .
make
./opencv_example

測試方法2

  1. 建立目錄opencv-test
  2. 進入目錄
  3. 建立編輯檔案DisplayImage.cpp
    #include <stdio.h>  
    #include <opencv2/opencv.hpp>  
    using namespace cv;  
    int
main(int argc, char** argv ) { if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>\n"); return -1; } Mat image; image = imread( argv[1], 1 ); if ( !image.data ) { printf("No image data \n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0; }
  1. 建立CMake編譯檔案CMakeLists.txt
    cmake_minimum_required(VERSION 2.8)  
    project( DisplayImage )  
    find_package( OpenCV REQUIRED )  
    add_executable( DisplayImage DisplayImage.cpp )  
    target_link_libraries( DisplayImage ${OpenCV_LIBS} )
  1. 編譯執行
    cmake .
    make
    ./DisplayImage opencv.jpg

檢視當前OpenCV版本

pkg-config --modversion opencv

從原始碼到可執行檔案

一般要新增的標頭檔案

//程式依賴的標頭檔案
#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
//包含程式所使用的名稱空間
using namespace std;
using namespace cv;

CmakeLists.txt檔案模板

project(Build)
find_package(OpenCV REQUIRED)
add_executable(Build LinearFilter.cpp)
target_link_libraries(Build ${OpenCV_LIBS})

講解的比較詳細的cmakelists編寫規則請參見《視覺SLAM十四講》 2.4節

編寫完原始檔和CmakeLists.txt後,新建一個build目錄,進入目錄,然後執行

cmake ..        //工程連結庫之類的
make            //編譯之類的,生成可執行檔案
./Build         //執行