在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1
目录
- 一 安装前的准备
- 二 编译并安装OpenCV 4.1.1
注:原创不易,转载请务必注明原作者和出处,感谢支持!
OpenCV目前(2019-8-1)的最新版本为4.1.1。本文将介绍如何在Ubuntu 16.04 LTS下编译安装最新的OpenCV 4.1.1版本以及4.1.1对应的contrib库。
一 安装前的准备
(1) 一台Ubuntu 16.04 LTS操作系统。选择速度快的国内更新源并更新系统
sudo apt-get update
sudo apt-get upgrade
(2) 安装最新版本的cmake-gui
进入cmake.org下载最新版本的cmake源代码,使用下面的命令安装。
解压:
tar -zxvf cmake-3.15.2.tar.gz
先安装cmake(Ubuntu软件库中的旧版cmake):
sudo apt-get install cmake
编译并安装最新版本cmake:
cd cmake-3.15.2/
mkdir build
cd build
cmake ..
make # 使用make -j,虚拟机有卡死的风险
sudo make install
cmake源码安装之后是没有GUI的,要安装cmake-gui,还需要安装cmake-qt-gui
sudo apt-get install cmake-qt-gui
(3) 下载OpenCV 4.1.1
的源代码和对应4.1.1版本的contrib源码
二 编译并安装OpenCV 4.1.1
(1) 安装OpenCV依赖项
sudo apt-get install build-essential# OpenCV官网中安装的是旧版本的libgtk2.0-dev,这里我们安装新版本的libgtk-3-dev
sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev# OpenCV官网中安装2.7版本的python-dev和python-numpy,这里我们安装python 3版本的python3-dev和python3-numpy
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
(2) 解压
tar -zxvf opencv-4.1.1.tar.gz
tar -zxvf opencv_contrib-4.1.1.tar.gz
(3) 使用cmake-gui生成Makefile
在opencv-4.1.1中建立build目录
cd opencv-4.1.1/
mkdir build
打开cmake-gui,设定source code目录为/home/your-name/opencv-4.1.1/
,设定binaries目录为刚才新建的build目录,也就是/home/your-name/opencv-4.1.1/build
。
OpenCV默认生成的python版本是python 2.7,这就很坑爹了!为了让OpenCV编译生成python 3版本的opencv_python3,需要添加一个编译选项。在cmake-gui当中,点击Add Entry
,如下图所示,填入编译选项名字PYTHON_DEFAULT_EXECUTABLE
和系统中python 3的路径/usr/bin/python3.5
(依实际情况而定)即可。
还有记得把编译选项OPENCV_GENERATE_PKGCONFIG
打开!新版本的OpenCV默认把这个编译选项给关掉了!如果该选项没有打开,pkg-config就没法使用了。这样,你想在命令行里直接编译opencv程序会是很痛苦的事情,只能借助CMake解决。
为了编译opencv_contrib,需要在cmake-gui中将编译选项OPENCV_EXTRA_MODULES_PATH
填入contrib库所在的路径,比如/home/your-name/opencv_contrib-4.1.1/modules/
(4) 编译安装OpenCV
生成Makefile之后,进入/home/your-name/opencv-4.1.1/build
,编译并安装。然后是漫长的等待过程。
make -j2
sudo make install
(5) 验证
验证pkg-config功能是否正确
lzh@lzh-VirtualBox:~$ pkg-config --cflags --libs opencv4
-I/usr/local/include/opencv4/opencv -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_dnn -lopencv_objdetect -lopencv_videoio -lopencv_photo -lopencv_imgcodecs -lopencv_gapi -lopencv_stitching -lopencv_calib3d -lopencv_features2d -lopencv_imgproc -lopencv_flann -lopencv_core
lzh@lzh-VirtualBox:~$
验证成功!
验证opencv_python3是否正确安装。
lzh@lzh-VirtualBox:~$ python3
Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.1.1
>>>
验证成功!
验证C++版本的opencv是否正确安装。
// Test-OpenCV-Install.cpp#include <iostream>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main(int argc, char **argv)
{Mat src = imread("./lena.jpg", IMREAD_COLOR);if (!src.data){cerr << "Error : could not load image." << endl;return -1;}imshow("input", src);waitKey(0);return 0;
}
先执行如下命令。因为你刚安装opencv,opencv所有的共享库被写入了/usr/local/lib
当中,此时,为了运行上述Opencv程序,你需要执行下面的命令将/usr/local/lib里的共享库信息重新载入内存,否则,会报找不到共享库的错误!
sudo ldconfig
编译并执行上述程序。
lzh@lzh-VirtualBox:~$ g++ -g -Wall -std=c++11 Test-OpenCV-Install.cpp -o Test-OpenCV-Install `pkg-config --cflags --libs opencv4`
lzh@lzh-VirtualBox:~$ ./Test-OpenCV-Install
lzh@lzh-VirtualBox:~$
验证成功!
转载于:https://www.cnblogs.com/laizhenghong2012/p/11329916.html
在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1相关推荐
- Ubuntu 16.04 LTS下编译GPU版tensorflow
Ubuntu 16.04 LTS下编译GPU版tensorflow 机器学习与数学 · 2016-06-10 13:51 作者: 比特小组 机器学习与数学出品 机器学习必然涉及到代码,本小组选择sci ...
- Ubuntu 16.04 源码编译安装 uhd gnuradio
Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...
- linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述
Ubuntu 16.04 LTS下LNMP环境配置简述 1.安装mysql sudo aptinstall mysql-server 安装过程会提示密码 2.安装nginx和php #添加nginx和 ...
- 使用新的 apt 命令在 Ubuntu 16.04 LTS 下管理软件包
前文 Ubuntu 16.04 新特性中 我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT ...
- Ubuntu 16.04源码编译安装Apache 2.4.25教程
这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...
- ubuntu python3.6_在 Ubuntu 16.04 LTS 系统上安装 Python 3.6
Ubuntu 16.04 LTS 系统默认自带的是 Python 2.7 和 Python 3.5,有时候我们会需要用到 Python 3.6,但是官方的源里是没有 Python 3.6 的 ,今天就 ...
- Ubuntu 16.04 LTS 下安装PyCharm
PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本.PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Proj ...
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟 ...
- opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤
Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...
最新文章
- ACL2020 | 使用强化学习为机器翻译生成对抗样本
- php上传中文图片,用PHP处理图片文件的上传
- robotac属于a类还是b类_工程项目分类A类、B类、C类、D类项目是指什么?注意:不是资料的A、B、C类报建资料...
- Go语言基础进阶—程序结构—类型
- python爬虫外贸客户_python实战成功爬取海外批发商价格信息并写入记事本
- 设计模式-设计原则-迪米特法则
- 华为提出 New IP,欲打破长达半世纪的IP协议重塑互联网
- HDFS简介及其功能
- 最新版网站推广完全手册
- php 固定表头,固定表头和首列的表格
- python表示颜色的代码_python 中颜色的表示
- unity获取电磁笔压感_电磁笔的分类和特性
- Unity 回合制战斗
- 基于MATLAB的矩阵基础(附例题与代码)
- Unity 射线与碰撞范围检测【踩坑记录】
- Vue实现图形化积木式编程(十)
- 进制转换之 十进制转换成m进制
- ALC655 VS PCI128D
- PHP简易商城(一)概述
- 工艺路线和工序有差别吗_做为一名机械人,你知道机械加工工艺的流程吗?
热门文章
- 基于javaweb的物资配送管理系统_智慧物流之RFID仓库管理系统,为传统的仓库管理带来了希望...
- alert文件位置 oracle,Oracle11gAlertlog文件位置的问题
- jquery-confirm
- c语言哈夫曼压缩文本,用哈夫曼压缩文件(C语言)
- c语言程序设计 在线课程设计,c语言程序设计 本科课程设计
- mysql+br_mysql有哪几种索引
- java 正则表达式 替换字符串img标签的路径_python面试题汇总第06期-正则表达式(内附7题及答案)...
- python3安装常见问题_python3中pip的安装、常见问题及万能解决方案。
- php 固定人数拼手气_独立统计在线人数和访问数代码分享(php)
- 折纸机器人的步骤图解_折纸图解走路的人