linux源代码编译安装OpenCV
为了尽可能保证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、安装必要的project构建程序
在终端中运行下面命令:
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
注意最后要输入password,假设不提醒输入password,就算了。
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的更多相关文章
- SUSE Linux源代码编译安装MySQL 5.6
这篇文章主要介绍了SUSE Linux下源代码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,须要的朋友能 ...
- Linux 下编译安装OpenCV【转】
转自:http://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html OpenCV 2.2以后版本需要使用Cmake生成makefile文件 ...
- Linux 下编译安装OpenCV(zhuanzai)
http://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html Cmake的安装 OpenCV 2.2以后版本需要使用Cmake生成make ...
- Linux源代码编译安装tree命令
wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz .tgz cd tree- make && make install
- linux源码编译安装OpenCV
为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...
- Linux编译安装opencv
参考https://blog.csdn.net/huang826336127/article/details/78760885 一.下载opencv源码包 下载地址:https://opencv.or ...
- Linux 环境中从源代码编译安装 ReText 问题与解决
从源代码编译安装 ReText 问题与解决 1. 如何安装 Python Markups 1.1 从 https://launchpad.net/python-markups 下载 Python Ma ...
- 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1
目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...
- 源代码编译安装Python3.5.2
由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...
随机推荐
- python2.7 跨文件全局变量的方法
有关python实现跨文件全局变量的方法. 在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况.文件1:globalvar.py #!/usr/bin/env pyt ...
- [100]linux输入输出重定向
一目了然版本: &号含义: 参考 参考:非常经典,值得一看,我是在linux爱好者公众号里发现的. 下面是我自己的一些总结. linux的命令数据流 在Linux下,当一个用户进程被创建的时候 ...
- 【Android】17.3 Activity与StartedService的绑定
分类:C#.Android.VS2015: 创建日期:2016-03-03 一.简介 除了上一节介绍的基本绑定以外,你还可以创建一个同时支持started和bound的服务.也就是说,服务可以通过调用 ...
- app 图标规格参考表
转自:http://www.cocoachina.com/appstore/top/2012/1105/5031.html 像我一样记不住iOS应用图标像素尺寸的开发者不在少数,我经常需要查询不同设备 ...
- C++ string的用法
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是 ...
- Oracle PLSQL Demo - 10.For Loop遍历游标[FOR LOOP CURSOR]
declare cursor cur_emp is select t.* from scott.emp t; begin for r_emp in cur_emp loop dbms_output.p ...
- PairRDD中算子aggregateByKey图解
PairRDD 有几个比较麻烦的算子,常理解了后面又忘记了,自己按照自己的理解记录好,以备查阅 1.aggregateByKey aggregate 是聚合意思,直观理解就是按照Key进行聚合. 转化 ...
- AngularJS实现跨域请求
跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpR ...
- dp之最长递增子序列模板poj3903
最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS.排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了. 假设存在一个序列d[1..9] = ...
- ios UITextField文本框基本使用,以及所有代理方法的作用
/* UITextField文本输入框 */ UITextField * textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 50 ...