前面说过opencv和python模块的安装,版本是基于opencv 2的,这篇主要说一下opencv3的安装过程以及相关依赖问题的解决,同样opencv3的安装包在官网上可以下载,最新稳定版是3.3.0,下载之后安装包为:opencv-3.3.0.zip;opencv3的安装包比2大了2倍以上,改动很大,支持的扩展也很多,具体官网上列出如下:

  

  这些依赖部分简单说明如下:

  1). gcc一般系统都会有

  2). cmake要手动安装并且版本要大于2.8.12,安装过程之前也写过

  3). git这个不是必须的,根据需要安装

  4). GTK不需要也可以不装,需要的话去官网下载包编译即可

  5). pkg-config一般系统自带

  6). python默认用系统的2.7最好提前安装一下numpy,具体过程前面安装opencv2都说过

  7). ffmpeg依赖,opencv视频处理部分是基于ffmpeg的,所以如果想用opencv3来处理视频那么必须安装ffmpeg依赖,并且不能下载官网上最新的ffmpeg,opencv调用的是比较老的系统版本,待会会说明怎么使用yum安装

  8). 其他依赖 比如libjpeg或者libpng等,这些尽量都要安装上,用默认的yum源就可以

  9). CUDA GPU支持,如果有GPU并且驱动和CUDA Toolkit都已经正确安装,那么opencv会自动支持

  下面开始安装,解压安装包并进入:

unzip opencv-3.3..zip
cd opencv-3.3./
mkdir build

  这里为了不污染源码环境,要求必须在新目录中编译,现在如果直接开始编译那么中间会下载ippicv_2017u2_lnx_intel64_20170418.tgz并且非常慢,这个如果需要可以提前下载好,如果不需要可以屏蔽,下载地址是:http://www.linuxfromscratch.org/blfs/view/svn/general/opencv.html 进入下载即可,配置方法如下:

  首先编辑ippicv.cmake文件 vim 3rdparty/ippicv/ippicv.cmake 然后找到ocv_download这个函数部分,URL下面有一个下载链接,我这里修改如下:

  

  配置成上面这个前提本机要启动一个服务器,比如apache,nginx或者python自带的都行,python自带的启动要在上面那个tgz所在的同一目录启动,启动命令是: python -m SimpleHTTPServer  另外apache或者nginx的web目录中也要放入上面下载的文件才可以,具体目录都可以自己定义的,只要能下载到就可以,另外如果不用就更简单了,随便修改一下原来的下载域名下载不到即可,修改完之后保存并退出,这时候编译时下载就很快了

  然后如果需要ffmpeg支持,那么需要安装相关的库,安装过程如下:

# 安装epel扩展源
yum -y install epel-release
# 添加扩展源
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
# 安装ffmpeg依赖
yum -y install ffmpeg ffmpeg-devel

  现在ffmpeg依赖就安装好了,如果没有网络的话,建议现在一台有网的计算机上安装收集到具体的rpm包,然后再复制过去安装即可,当然如果不使用opencv的视频处理库,而是直接使用ffmpeg解码,那么上面步骤就完全不需要了

  现在ippicv和ffmpeg都准备好了,那么可以开始安装opencv3了

  执行cmake配置:

cd build/
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

  上面如果CMAKE_INSTALL_PREFIX安装目录不指定,默认是安装到/usr/local下和系统放一块,完成之后可以查看支持的相关扩展,没问题执行编译并安装:

make -j4
make install

  执行完就安装成功了,关于python的支持配置和之前完全一样,复制cv2.so模块到python库目录下即可;另外ffmpeg支持测试如下:

  首先进入解压好的源码目录,不是安装目录,然后再执行 cd samples/cpp/example_cmake/ 进入示例目录,会看到里面有一个example.cpp文件,在原来基础上修改如下:

 #include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream> using namespace cv;
using namespace std; int main()
{
cout << "Built with OpenCV " << CV_VERSION << endl;
Mat image;
VideoCapture capture("/root/test.mp4");
if(capture.isOpened())
{
cout << "Capture is opened" << endl;
for(int i = ;i < ;i++)
{
capture >> image;
if(image.empty())
break;
char image_name[];
sprintf(image_name, "%d.jpg", i);
imwrite(image_name, image);
}
}
else
{
cout << "No capture" << endl;
}
return ;
}

  上面的代码很简单就是从视频中解出来10帧图片,视频文件自己找一个测试即可,编辑完成之后执行下面命令编译:

cmake .
make

  如果执行编译没什么问题,那么现在应该生成了一个opencv_example的可执行程序,然后 ./opencv_example 执行即可,正常应该可以生成0.jpg~9.jpg这10张图片

  到这里opencv3环境就安装好了

centos7下opencv3的安装的更多相关文章

  1. centos7下使用yum安装mysql

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/m ...

  2. [转]Centos7下caffe的安装

    Centos7下caffe的安装 原文地址:http://blog.csdn.net/s2392735818/article/details/49796017   版权声明:本文为博主原创文章,未经博 ...

  3. centos7下搜狗输入法的安装教程

    相信用过centos自带的输入法的朋友都会感叹这也实在是太难用了吧,使用拼音打出来的词总是不能在前几个匹配到,即使是一些常用词也是如此,简直无法忍受跟个zz似的.吐槽完了,这里给出centos7下搜狗 ...

  4. centos7下使用yum安装pip

    centos7下使用yum安装pip 首先安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pi ...

  5. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  6. CentOS7 下源码安装 python3

    CentOS 7 下源码安装 python3   在CentOS7下,默认安装的是python2.7:为满足项目要求,安装python3 的方法如下:   1. 首先安装python3.6可能使用的依 ...

  7. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  8. centos7下使用yum安装redis

    centos7下使用yum安装Redis 第一步:安装 yum –y install redis 第二步:启动 systemctl start redis.service 第三步:设置开机启动 sys ...

  9. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

随机推荐

  1. js高阶函数map和reduce

    map 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScr ...

  2. LeetCode(39):组合总和

    Medium! 题目描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates ...

  3. 在 laravel 的 DB::transaction 中,为外部变量赋值

    例如,我想在 laravel 的事务中,对某个外部变量赋值,然后在后续的逻辑中判断该变量的属性 $user = null; // init DB::transaction(function() use ...

  4. Fiddler抓包4-工具介绍(request和response)

    前言 本篇简单的介绍下fiddler界面的几块区域,以及各自区域到底是干什么用的,以便于各好的掌握这个工具 一.工具简介 1.第一块区域是设置菜单,这个前面2篇都有介绍 2.第二块区域是一些快捷菜单, ...

  5. Bootstrap案例中,登陆界面自适应

    1.html布局源码: <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  6. 关于Spring MVC 中地址栏访问 /WEB-INF下的.jsp

    WEB-INF是对资源的保护,直接在地址栏访问WEB-INF目录下的页面,会显示404,关于为什么要把页面放在WEB-INF下,可以自行百度 在这里我是用SpringMVC 对WEB-INF目录下的页 ...

  7. Codeforces Round #341 (Div. 2) E - Wet Shark and Blocks

    题目大意:有m (m<=1e9) 个相同的块,每个块里边有n个数,每个数的范围是1-9,从每个块里边取出来一个数组成一个数,让你求组成的方案中 被x取模后,值为k的方案数.(1<=k< ...

  8. Adobe Acrobat Pro DC破解

    下载amtemu 点击 在AMT Emulator界面,下拉选择Adobe Acrobat DC; 然后点击右下角Install安装破解补丁. 点击Install后在弹出窗口中手动找到并选择软件安装目 ...

  9. 031 分布式中,zookeeper的部署

    一:准备 1.概述 为分布式应用提供协调服务的项目 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 类似于文件系统那样的树形数据结构 目的:将分布式服务不再由于协作冲突而 ...

  10. 安装及配置sublime

    纯个人笔记,粗略编写,有时间再修改 参考:关于Sublime text3 配置及插件整理 参考:https://github.com/boontime/sublime-text3-config 参考: ...