Ubuntu 18.04 + OpenCV3.4.6 + QT5.8

  • OpenCV3.4.6 點擊 Sources 開始下載 opencv 源碼:opencv-3.4.6.zip,下載完成後解壓縮

    $ unzip PATH/opencv-3.4.6
    
  • 安裝 cmake

    $ sudo apt update
    $ sudo apt install cmake
    
  • 安裝 opencv 依賴

    # 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中源的索引
    $ sudo apt update
    
    # 安裝 opencv 依賴包
    $ sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
    
  • 如果安裝opencv 依賴時 提示 E: Unable to locate package …… 錯誤,即 Ubuntu 無法定位某個安裝包,使用以下命令解決。

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    

2. 編譯 opencv

  • 創建編譯文件夾:進入 opencv-3.4.6 解壓縮後的目錄,創建編譯目錄

    $ cd PATH/opencv-3.4.6
    $ mkdir opencv_build
    $ cd opencv_build
    
  • 工程構建:在build 目錄下使用 cmake 執行以下命令進行工程構建

    $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    

    工程構建成功將會有以下輸出:
    在這裏插入圖片描述

  • 執行 sudo make,開始編譯 opencv-3.4.6,編譯時間很長,需要耐心等待,開始編譯後命令行輸出如下圖
    在這裏插入圖片描述

  • 編譯完成後,將 opencv 安裝到 Ubuntu 操作系統中,執行 sudo make install ,安裝完成後命令行輸出如下圖。可以看到 opencv 已經安裝到 /usr/local/lib
    在這裏插入圖片描述

3. 相關配置

  • opencv 配置文件

    • 打開 opencv 配置文件:sudo vim /etc/ld.so.conf.d/opencv.conf
    • 文件末尾添加:/usr/local/lib
    • 關閉配置文件,並執行 sudo ldconfig 使新的更改生效
  • 環境變量配置:

    • 打開環境變量配置文件:sudo vim /etc/bash.bashrc

    • 文件末尾添加:

      PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
      export PKG_CONFIG_PATH
      
    • 關閉環境變量配置文件,並執行 source /etc/bash.bashrc 使新的更改生效

4. 測試

寫一個簡單的測試程序測試 opencv 是否安裝成功。

4.1 編寫測試代碼

新建一個測試工程,如 test_opencv,編寫 display_image.cpp 文件如下:

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main( int argc, char** argv )
{
    cv::Mat image;
    image = cv::imread( argv[1], 1 );

    if( argc != 2 || !image.data )
    {
        printf( "No image data \n" );
        return -1;
    }

    cv::namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    cv::imshow( "Display Image", image );
    cv::waitKey(0);

    return 0;
}

4.2 CMakeLists.txt 文件

編寫 CMakeLists.txt 文件如下:

cmake_minimum_required(VERSION 3.10)
project(display_image)

set(CMAKE_CXX_STANDARD 11)

find_package(OpenCV)

add_executable(display_image display_image.cpp)

target_link_libraries(display_image ${OpenCV_LIBS})

4.3 編譯運行

在測試工程目錄下打開終端,依次運行如下命令:

$ cmake .
$ make
$ ./display_image 圖片路徑

最終顯示結果如下,opencv 安裝成功!
在這裏插入圖片描述

5. QT + OpenCV

  1. 在 QT 中創建項目: File -> New File or Project... -> Non-Qt project -> Plain C++ application

  2. 在新建項目的 .proj 文件中添加以下內容:

    INCLUDEPATH += /usr/local/include \
                   /usr/local/include/opencv \
                   /usr/local/include/opencv2
    
    LIBS += /usr/local/lib/libopencv_highgui.so \
            /usr/local/lib/libopencv_core.so    \
            /usr/local/lib/libopencv_imgproc.so \
            /usr/local/lib/libopencv_imgcodecs.so
    
  3. main.cpp 文件中編輯以下代碼:

    #include <iostream>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    int main()
    {
        cv::Mat ship = cv::imread("ship.jpg");
    
        cv::imshow("ship", ship);
        cv::waitKey(0);
        return 0;
    }
    
  4. 運行以上代碼後顯示圖片如下:
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章