首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ubuntu下编译Opencv4.0及opencv_contribute模块步骤详解

Ubuntu下编译Opencv4.0及opencv_contribute模块步骤详解

作者头像
OpenCV学堂
发布2019-08-21 18:08:49
发布2019-08-21 18:08:49
6.5K00
代码可运行
举报
运行总次数:0
代码可运行

来自 社区网友 团粉 的热心投稿

编译环境:ubuntu16.04 LTS Opencv版本:opencv4.0.1+opencv4.0.1 contribute

下载opencv4.0.1及contribute模块

https://github.com/opencv/opencv/releases/tag/4.0.1 https://github.com/opencv/opencv_contrib/releases/tag/4.0.1

更换国内源

使用 ubuntu 原生源下载速度,可替换为国内源,提升下载速度

备份 ubuntu 原生源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

使用gedit编辑sources.list文件

sudo gedit /etc/apt/sources.list

将sources.list文件中的内容替换为以下内容,更换为阿里源

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

以上内容仅支持 ubuntu16 ,其他ubuntu版本可自行百度

命令行输入 sudo apt-get update 进行更新

安装cmake及依赖环境

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen pylint libvtk6-dev

编译安装Opencv

新建一个文件夹,存放下载的opencv压缩包

mkdir opencv4 cd opencv4

将下载好的压缩包拷贝到opencv4文件夹中
解压opencv压缩包

.tar.gz 结尾的压缩包使用 tar 工具进行解压;.zip 结尾的压缩包使用unzip工具进行解压

tar -zxvf xxxx.tar.gz unzip xxx.zip

解压完成后查看该目录下的文件

进入 opencv-4.0.1 文件夹,新建一个 build 文件夹,用于存放编译过程中产生的文件

cd opencv-4.0.1 mkdir build cd build

在 build 文件夹中编译

在命令行中输入以下内容:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH= /home/cht/opencv4/opencv_contrib-4.0.1/modules -D OPENCV_EXAMPLES=ON ..

CMAKE_INSTALL_PREFIX:该选项为opencv安装的目录,可按实际目录进行修改,一般放在/usr/local目录下 OPENCV_GENERATE_PKGCONFIG:打开 pkg-config OPENCV_EXTRA_MODULES_PATH:该选选项为opencv_contrib模块下module文件夹,按实际目录进行修改,若不编译opencv_contrib模块,该选项可以省略 .. :表示CMakeList.txt在上级目录,命令最后的 .. 不能够省略,否则会出现找不到CMakeList.txt

等待 cmake 完成......

cmake 执行过程需要下载一些压缩包,可能由于网络原因下载不下来,导致出错,这时可以删除 build 文件夹下的内容,重新执行 cmake 命令

在 build 文件夹中进行编译,输入 make

等待编译完成...

编译完成,输入sudo make install 进行安装
配置编译环境

在命令行中输入 gedit ~/.bashrc 打开 ~/.bashrc 文件 在 ~/.bashrc 文件中添加下面一行内容

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

使环境变量生效

输入以下内容

source ~/.bashrc sudo ldconfig

使用 pkg-config 进行测试验证

pkg-config --libs --cflags opencv4

测试opencv程序

运行openv附带的测试程序

/opencv-4.0.1/samples/cpp/example_cmake

cmake . make ./opencv_example

运行结果:

手动编写一个opencv测试程序
打开命令行,新建一个opencv_test 文件夹用于存放测试代码

mkdir opencv_test cd opencv_test

新建一个 opencv_test.cpp 文件

gedit opencv_test.cpp

在 opencv_test.cpp 中 输入以下内容

代码语言:javascript
代码运行次数:0
运行
复制
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main(){
    Mat frame=imread("1.jpeg");
    if(frame.empty())
    {
        cout<<" frame is empty"<<endl;
        return -1;
    }
    imshow("input",frame);
    waitKey(0);
    return 0;
}
新建一个 CMakeLists.txt 文件

gedit CMakeLists.txt

在CMakeLists.txt 中输入以下内容

代码语言:javascript
代码运行次数:0
运行
复制
cmake_minimum_required(VERSION 3.1)

# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

project(opencv_test)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
add_executable(opencv_test opencv_test.cpp)
target_link_libraries(opencv_test ${OpenCV_LIBS})
新建一个 build 文件夹

mkdir build

进入build 文件夹中,编译测试程序

cd build cmake .. make

查看并运行生成的可执行文件

在 build 文件夹中存放一张名为 1.jpeg 的图片进行测试

ls ./opencv_test

运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载opencv4.0.1及contribute模块
    • 更换国内源
      • 备份 ubuntu 原生源
      • 使用gedit编辑sources.list文件
      • 将sources.list文件中的内容替换为以下内容,更换为阿里源
    • 安装cmake及依赖环境
    • 编译安装Opencv
      • 新建一个文件夹,存放下载的opencv压缩包
      • 将下载好的压缩包拷贝到opencv4文件夹中
      • 解压opencv压缩包
      • 进入 opencv-4.0.1 文件夹,新建一个 build 文件夹,用于存放编译过程中产生的文件
      • 在 build 文件夹中编译
    • 测试opencv程序
      • 运行openv附带的测试程序
      • 手动编写一个opencv测试程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档