为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上。先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以类比安装。此文针对,有一点Linux常识(会使用终端)的读者。

源代码准备

如果不想在安装过程中,一步步的下载、编译、安装,可以先一次性下载完需要用到的源代码。

X264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

FFMPEG: http://ffmpeg.org/download.html

V4L:www.linuxtv.org/downloads/v4l-utils/  
OpenCV:http://opencv.org/

1、安装必要的工程构建程序

在终端中执行以下命令:

sudo apt-get install g++ gfortran gdb cgdb checkinstall cmake build-essential

如果遇到“do you want to continue?”时,输入Y,敲击回车。

2、安装gstreamer

在终端中执行如下命令:

sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad  

如果遇到“do you want to continue?”时,输入Y,敲击回车。

3、删除系统上安装的任何ffmepg和x264

在终端中执行如下命令:

sudo apt-get remove ffmpeg x264 libx264-dev

4、为源码安装ffmpeg和x264准备依赖库

在终端中执行如下命令:

sudo apt-get install git libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev libjpeg8 libjpeg8-dev

如果遇到“do you want to continue?”时,输入Y,敲击回车。

5、安装最新的x264

下载最新x264的源码,下载地址:ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

如果也可以直接执行如下命令:

wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2

如果上面的命令未能成功下载的话,必须用那个链接去手动下载。

将下载的文件解压,进入解压后的目录,执行如下命令:

./configure --enable-shared --enable-pic

执行如下命令,完成编译:

make

编译完成后,执行如下命令,完成安装:

sudo make install

6、安装最新的ffmpeg

下载最新的ffmpeg源码,下载地址:http://ffmpeg.org/download.html

将下载的源码解压,进入解压目录,执行如下命令:

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared --enable-pic

如果执行成功,执行如下命令,进行编译:

make

待编译完成后,执行如下命令,安装:

sudo make install 

7、安装v4l

下载最新的v4l,下载地址:www.linuxtv.org/downloads/v4l-utils/

下载完成后,解压源码压缩包,进入解压目录,执行如下命令:

./configure ; make ; sudo make install

注意最后要输入密码,如果不提醒输入密码,就算了。

8、安装cmake-curses-gui

执行如下命令:

sudo apt-get install cmake-curses-gui

9、安装gnome-core-devel

执行如下命令:

sudo apt-get install gnome-core-devel

10、安装OpenCV

下载最新的OpenCV源代码,下载地址:http://opencv.org/

下载后,解压压缩包(unzip),进入解压目录,执行如下命令以创建build目录

mkdir build; cd build; ccmake ../

执行完上述命令后,会出现ccmake的界面,然后在键盘上按下c键,然后ccmake就会去查看你的编译环境的。

等cmake检查完后,根据出现的内容,选择合适的选项,比如如果你没有cuda或者opencl的话,可以将与这些信息有关的项都设置成off。

建议以下项保持为ON

BUILD_DOCS
BUILD_EXAMPLES
INSTALL_C_EXAMPLES
WITH_GSTREAMER
WITH_JPEG
WITH_GTK
WITH_PNG
WITH_FFMPEG
WITH_V4L 

设置完成后,敲击键盘上的g键,待cmake退出后,执行下面的命令以完成编译:

make

这个编译过程可能需要一段时间,耐心等待一会,你可以用这段时间看看书,喝点水。

待编译完成后,最后一个命令:

sudo make install

总结

编译安装OpenCV可能会花不少时间,各位一定要耐心点。网络如果比较差,可以先提前把需要的代码都下载下来。不幸的是,至于依赖项的安装是不得不(或者说很难做到)不需要网络的,这个过程如果需要的时间太常的话,只能在下载和安装的过程中,多看点书,多喝点水了。:(

linux源码编译安装OpenCV的更多相关文章

  1. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  2. Linux源码编译安装httpd

    Linux安装软件采用源码编译安装灵活自由,适用于不同平台,维护也十分方便. 源码编译的安装方式一般由3个步骤组成: 1.配置(configure) 2.编译(make) 3.安装(make inst ...

  3. Linux 源码编译安装软件

    程序包编译安装的步骤: 源代码-->预处理-->编译-->汇编-->链接-->执行 多文件:文件中的代码之间,很可能存在跨文件依赖关系 1.编译源码的项目工具 使用相关的 ...

  4. Linux源码编译安装程序

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  5. Linux源码编译安装MySQL5.7

    目录[-] 一.环境准备: 二.升级系统: 三.做一些准备工作(以下Linux命令均在su到root用户操作): 四.开始编译安装mysql-5.7.9: 一.环境准备: 我尝试过以下环境都是能成功的 ...

  6. Linux源码编译安装php7.2

    以下简单的介绍下如何源码安装PHP,对于版本不一定是7.2,也可以是7.3,当然方法都是换汤不换药的,核心东西不变. 一.下载PHP源码 需要到指定的路径下载源码,执行下面的命令 wget http: ...

  7. 部署maria数据库到linux(源码编译安装)

    maria数据库是mysql原作者另外开发的一个版本,使用方法和mysql一样,可以直接用mysql的库连接. 在这下载包并解压: https://mariadb.org/download/ 建立数据 ...

  8. linux源码编译安装php出现 cannot find -lltdl

    原因: 在编辑php时添加的“–with-mcrypt”选项造成. 解决方法: 1.如果不需要mcrypt,那么编辑php时去掉该选项,然后再make.make install. 2.如果需要mcry ...

  9. Linux源码编译安装php7.3

    ---恢复内容开始--- ps:一切从简 一.安装所需环境 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel ...

随机推荐

  1. Mysql之基本操作与数据类型

    进入mysql: mysql -hlocalhost -uroot -p; mysql -uroot -p密码; 查看帮助文档: help 查看名 database(s); 创建数据库: create ...

  2. ES6(解构赋值)

    解构赋值 1.什么是解构赋值? 在语法上,就是赋值的作用,解构为(左边一种解构.右边一种解构,左右一一对应进入赋值) 2.解构赋值的分类. 1.左右为数组即为数组解构赋值:2.左右为对象即为对象解构赋 ...

  3. “百度杯”CTF比赛 九月场_再见CMS(齐博cms)

    题目在i春秋ctf大本营 又是一道cms的题,打开御剑一通乱扫,发现后台登录地址,访问一看妥妥的齐博cms 记得以前很久以前利用一个注入通用漏洞,这里我贴上链接,里面有原理与利用方法详细说明: 齐博c ...

  4. Codeforces 343E Pumping Stations

    Description 题面 题目大意:求一个排列 \(P\),使得 \(\sum_{i=1}^{n-1}maxflow(P_i,P_{i+1})\) 尽量大 Solution 构造出最小割树,那么第 ...

  5. 【bzoj4009 hnoi2015】接水果

    题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有 ...

  6. hdu3567 八数码(搜索)--预处理

    题意:为你两个状态,求a到b 的最小路径,要求字典序最小. 思路: 最开始想的是目标状态是变化的,所以打表应该不行,然后直接上A*,但是TLE了- -(瞬间无语) 然后看了下别人的思路,预处理出9个状 ...

  7. openwrt 下添加sim760ce usb驱动

    SIM7500_SIM7600 系列模块的 USB VID 是 0x1E0E PID 是 0x9001. 作为 Slave USB 设备,配置如下表 USB 接口波特率自适应 9600.115200 ...

  8. Cisco Port-Channel 设置(链路聚合)

    Port-Channel 的在实际工作中的主要作用是将两个或多个端口捆绑成为一个虚拟通道. interface Port-channel1 description port(1/0/5-6) swit ...

  9. 自定义shell终端提示符及颜色即修改 PS1文件 (以Centos为例)

    Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~ ...

  10. IntelliJ IDEA 14.0.3 实战搭建Spring+SpringMVC+MyBatis组合框架

    简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实 ...