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. 运行以上代码后显示图片如下:
    在这里插入图片描述

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