centos7下opencv3的安装

  前面说过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.0.zip
cd opencv-3.3.0/
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 80 另外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文件,在原来基础上修改如下:

 1 #include "opencv2/core.hpp"
 2 #include "opencv2/imgproc.hpp"
 3 #include "opencv2/highgui.hpp"
 4 #include "opencv2/videoio.hpp"
 5 #include <iostream>
 6
 7 using namespace cv;
 8 using namespace std;
 9
10 int main()
11 {
12     cout << "Built with OpenCV " << CV_VERSION << endl;
13     Mat image;
14     VideoCapture capture("/root/test.mp4");
15     if(capture.isOpened())
16     {
17         cout << "Capture is opened" << endl;
18         for(int i = 0;i < 10;i++)
19         {
20             capture >> image;
21             if(image.empty())
22                 break;
23             char image_name[6];
24             sprintf(image_name, "%d.jpg", i);
25             imwrite(image_name, image);
26         }
27     }
28     else
29     {
30         cout << "No capture" << endl;
31     }
32     return 0;
33 }

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

cmake .
make

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

  到这里opencv3环境就安装好了

时间: 2024-10-08 01:03:52

centos7下opencv3的安装的相关文章

Centos7下Apache详细安装配置及证书申请SSL配置介绍

首先说到Centos大家都已经非常熟悉了,所以我们也就不多介绍关于Centos具体发展了,我们首先知道在Centos7之前版本命令和ReadHat的命令完全一样的,可Centos从6.0版本升级到Centos7版本之后,命令及功能上有了很大的变化,最明显的差别就是从安装的操作界面及操作命令上已经有很大变化了,更不用说功能上的变化了,比如centos6.x版本的iptalbes到centos7的firewall的变化,当然,变化了很多,我也就不多说了,今天呢,主要给大家介绍一下再Centos7下A

CentOS7 下源码安装MySQL 8.0.11

CentOS7 下源码安装MySQL 8.0.11 系统环境:CentOS7, 内核:Linux 3.10.0-862.el7.x86_64 如果有旧版本的MySQL,先卸载,用下面命令来查询出系统有哪些相关的MySQL包. rpm -qa | grep mysql 如果上述命令查询出有相关的MySQL包,就卸载 rpm -e 包名 卸载MariaDB包 yum remove mariadb-libs.x86_64 从MySQL官网下载源码包,并将该文件拷贝到系统中. https://dev.m

linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例

linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例本文章适合已经熟悉安装过程,需要快速部署使用初学者建议分步学习:https://edu.51cto.com/course/15530.html linux.x64_11gR2_database_1of2.zip (oracle官网下载)linux.x64_11gR2_database_2of2.zip (oracle官网下载)rlwrap-0.42.tar.gz (51CTO下载里搜)三个安装包: 一.上传安装包 mk

CentOS7下yum方式安装mysql5.6

在Centos7中用MariaDB代替了mysql数据库.所以在新安装MySQL前必须做好对系统的清理工作. 一.清理CentOS7下的MariaDB. [[email protected] ~]#rpm -qa | gremp mariadb         [[email protected] ~]# rpm -e --nodeps mariadb.x86_64 1:5.5.41-2.el7_0 二.下载MySQL的yum包 Linux系统自带的repo是不会自动更新每个软件的最新版本(基本

CentOS7下源码安装5.6.23

清理CentOS7下的MariaDB. [[email protected] ~]#rpm -qa | gremp mariadb     [[email protected] ~]# rpm -e --nodeps mariadb.x86_64 1:5.5.41-2.el7_0 下载源码 [[email protected] ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz 2.解压 [[emai

Centos7下Mysql8.0安装手册 以及 一些坑点总结

MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一.  Mysql8.0版本相比之前版本的一些特性 1) 默认编码utf8默认编码使用utf8mb4, utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符历史,MySQL数据库的 "utf8"并不是真正概念里的 UTF-8.MySQL中的"utf8"编码只支持最大3字节每字符.真正的大家正在使用

centos7下python2环境安装pip2、kazoo、bottle、beaker

摘自:https://mp.weixin.qq.com/s?src=11&timestamp=1576355125&ver=2034&signature=mNp2na6VjFzT9n3FiDC0ICOWiHP4UJnqa1oTvkwEzuc7LPHYEyveSSBfQOq9*kM7vFjS4xB7QNtHYAev9CgCtGC2U0tkVNf0L6hwTGFjhleUT3CkPqu61mlqP-GTdr*4&new=1 一.centos7 下为自带的python2.7安装p

CentOS7下Nginx的安装配置

一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C语言开发,建议在linux上运行,本文章使用Centos7作为安装环境. 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进

CentOS7下yum方式安装nginx

最近把centos升级到7,发现用之前的一些安装nginx的方法安装后有依赖包冲突,估计是 linux版本和nginx版本不匹配导致. 上官网查看文档, 有针对centos7的安装方法,记录下: step1:  创建yum数据源文件   /etc/yum.repos.d/nginx.repo step2: 编辑nginx.repo文件内容如下并保存 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basear