Ubuntu16.04 编译 Opencv3.4.0

参考文献:
https://blog.csdn.net/qq_33431368/article/details/84754421
https://www.jianshu.com/p/f646448da265
https://blog.csdn.net/u013066730/article/details/79411767
https://blog.csdn.net/u013066730/article/details/79411730
https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_install.html

安装包下载

去官网下载opencv,在本教程中选用的时opencv3.4.0,其他版本的配置方法类似:

下载地址,选择sources版本:http://opencv.org/releases.html

解压opencv-3.4.0.zip包:

unzip opencv-3.4.0.zip

进入文件夹:

cd opencv-3.4.0

依赖库安装

安装cmake:

sudo apt-get install cmake  

安装需要用到的依赖库:

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff4-dev libswscale-dev libjasper-dev  

程序编译

创建文件夹:

sudo mkdir my_build_dir

进入文件夹:

cd my_build_dir

执行cmake命令:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
或者直接:sudo cmake ..

执行make命令:

sudo make

执行install命令:

sudo make install

配置编译环境

将OpenCV的库添加到路径:

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在空白的文件上添加:

/usr/local/lib  

使配置文件生效:

sudo ldconfig 

值的一提的是,这个“配置编译环境”不确定是否必要,但建议做一下!

配置bash

配置bash执行:

sudo gedit /etc/bash.bashrc 

在末尾追加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

保存,执行如下命令使得配置生效:

source /etc/bash.bashrc

更新一下:

sudo updatedb

值的一提的是,这个“配置Bash”不确定是否必要,但建议做一下!

程序测试

创建并进入测试文件夹:

mkdir ~/opencv-demo
cd ~/opencv-demo/

编写cpp文件和Cmakelist.txt文件:

gedit DisplayImage.cpp
gedit CMakeLists.txt

cpp文件内容如下:

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;

int main(int argc, char** argv)
{
    Mat image;
    image = imread(argv[1], 1);
    if (!image.data)
    {
        printf("No image data\n");
        return -1;
    }
    namedWindow("display", WINDOW_AUTOSIZE);
    imshow("display", image);
    waitKey(0);
    return 0;
}

Cmakelist.txt文件内容如下:

cmake_minimum_required(VERSION 2.8)
project(DisplayImage)
find_package(OpenCV REQUIRED)
add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})

然后cmake、make一下:

sudo cmake .
sudo make

开始测试:

sudo ./DisplayImage test.jpeg

然后打开了这张照片:
在这里插入图片描述

程序移植

经测试,需要将已经编译完成的以下文件夹拷贝到对应目录即可:

usr/local/include/opencv
usr/local/include/opencv2
usr/local/lib/libopecv.so(大约51个)
usr/local/share/OpenCV

这里给出几个解压命令:

unzip archive_name.zip                     zip解压到当前目录
tar -xvf archive_name.tar                  tar解压到当前目录
tar -zxvf archive_name.tar.gz              tar.gz解压到当前目录

还需注意,直接粘贴到usr/local/include可能不被允许,可以现在home/zhangru下解压完毕再进行拷贝。
打开usr/local/include文件夹权限的命令行代码为:

 sudo nautilus

值得一提的是,如果你使用上述“测试”中的代码,请别忘记改写cmakelist.txt和DisplayImage.cpp,
此外还需要安装cmake:

sudo apt-get install cmake

当然,如果你这样修改cmakelist.txt文件,则可以将需要的文件夹直接放在当前工作目录下:

cmake_minimum_required(VERSION 2.8)
project(DisplayImage)

find_package(OpenCV REQUIRED PATHS ./share/OpenCV)

include_directories(
   .
   ./include
   ./lib
   ./share
   ) 

add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})

猜你喜欢

转载自blog.csdn.net/qq_30534935/article/details/96353857
今日推荐