Ubuntu下OpenCV的配置

Ubuntu18.04LTS下OpenCV的配置

配置过程同样适用于Ubuntu Mate16.04 LTS 亲测实用

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

https://blog.csdn.net/blanklog/article/details/80918107

安装依赖包

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         //运行

猜你喜欢

转载自blog.csdn.net/VennyJin/article/details/82533523