根据项目需要,安装opencv并提供给开发使用,并且使用opencv提供python3的API接口。虽然不知道是个啥,还是简单了解下。

opencv是什么?

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP(收费库)进行加速处理。

环境信息:

  • opencv-3.4.4 //3.x版本以上建议使用7系列来安装,省掉超多升级步骤
  • opencv_contrib-3.4.4 //opencv3以后 SIFT 和 SURF 之类的属性被移到了 contrib 中
  • centos7
  • gcc 4.8.x
  • cmake 2.8.x
  • pyenv //shell脚本编写的python版本管理工具
  • pyenv-virtualenv //虚拟环境
  • python 3.x //使用opencv提供的python3的API接口

一、下载源码包

  • opencv https://github.com/opencv/opencv
  • opencv_contrib https://github.com/opencv/opencv_contrib
  • python 3.4.1 https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tar.xz
  • pyenv https://github.com/pyenv/pyenv
  • pyenv-virtualenv https://github.com/pyenv/pyenv-virtualenv

二、安装python环境

  1. 安装pyenv
    注:pyenv和python环境安装可参考:https://www.cnblogs.com/dance-walter/p/9364652.html

  2. 安装依赖包
//安装编译包
~]# yum install -y cmake gcc gcc-c++
//安装图形特性功能
]# yum install -y gtk* libdc1394-devel libv4l-devel ffmpeg-devel gstreamer-plugins-base-devel
//安装图片功能
]# yum install -y libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel

三、安装python依赖库

~]# pyenv virtualenv 3.4.1 opencv   //创建一个opencv别名的python3.4.1版本的环境
~]# pyenv activate opencv           //切换至虚拟opencv环境中
(opencv) ~]# pip install numpy==1.13.1    //根据项目需要选择性安装
(opencv) ~]# pip install dlib==19.9.0
(opencv) ~]# pip install scipy==0.18.0

四、编译安装opencv

在linux下安装gtk-devel时会引入安装python2的安装,导致在使用cmake时会检测到两个python版本,而cmake会倾向于使用低版本的python2。

错误过程

(opencv) ~]# tar xf opencv-3.4.4.tar.gz -C /usr/local/pkg/
(opencv) ~]# tar xf opencv_contrib-3.4.4.tar.gz -C /usr/local/pkg/
(opencv) ~]# cd /usr/local/pkg/
(opencv) ~]# mkdir opencv-3.4.4/build    //创建build编译目录
(opencv) ~]# cd opencv-3.4.4/build
(opencv) ~]# cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/usr/local/pkg/opencv_contrib-3.4.4/modules ..
....
-- The CXX compiler identification is GNU 4.8.5
-- The C compiler identification is GNU 4.8.5
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Performing Test HAVE_CXX11 (check file: cmake/checks/cxx11.cpp)
-- Performing Test HAVE_CXX11 - Failed
**-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.5", minimum required is "2.7")
-- Found PythonLibs: /lib64/libpython2.7.so (found suitable exact version "2.7.5")**    //这里已经查找到相应的环境信息
Traceback (most recent call last):File "<string>", line 1, in <module>
ImportError: No module named numpy.distutils
**-- Found PythonInterp: /usr/local/python/.pyenv/versions/3.4.1/bin/python (found suitable version "3.4.1", minimum required is "3.2")
-- Could NOT find PythonLibs (missing:  PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is exact version "3.4.1")**
//这里没有发现PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS环境信息。需要要在cmake时指定相应信息
....
--   OpenCL:                        YES (no extra features)
--     Include path:                /usr/local/pkg/opencv-3.4.4/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
--
**--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.5)
--     Libraries:                   /lib64/libpython2.7.so (ver 2.7.5)
--     numpy:                       /usr/lib64/python2.7/site-packages/numpy/core/include (ver 1.13.1)
--     packages path:               lib/python2.7/site-packages**
//这不是我想要的,需求是python3
--
--   Python (for build):            /usr/bin/python2.7
--
--   Java:
--     ant:                         NO
--     JNI:                         /usr/lib/jvm/java/include /usr/lib/jvm/java/include/linux /usr/lib/jvm/java/include
--     Java wrappers:               NO
--     Java tests:                  NO
--
--   Install to:                    /usr/local

正确过程

...
(opencv) ~]# cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D INSTALL_PYTHON_EXAMPLES=ON \
**-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \**
-D PYTHON_EXECUTABLE=$(which python) \
-D PYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))") \
-D OPENCV_EXTRA_MODULES_PATH=/usr/local/pkg/opencv_contrib-3.4.4/modules ..
...
--   OpenCL:                        YES (no extra features)
--     Include path:                /usr/local/python/opencv-3.4.4/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
--
--   Python 3:
--     Interpreter:                 /usr/local/python/.pyenv/shims/python3 (ver 3.4.1)
--     Libraries:                   /usr/local/python/.pyenv/versions/3.4.1/lib (ver 3.4.1)
--     numpy:                       /usr/local/python/.pyenv/versions/3.4.1/lib/python3.4/site-packages/numpy/core/include (ver 1.13.1)
--     packages path:               lib/python3.4/site-packages
--
--   Python (for build):            /usr/local/python/.pyenv/shims/python3
--
--   Java:
--     ant:                         NO
--     JNI:                         /usr/lib/jvm/java/include /usr/lib/jvm/java/include/linux /usr/lib/jvm/java/include
--     Java wrappers:               NO
--     Java tests:                  NO
--
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/python/opencv-3.4.4/build
(opencv) ~]# make -j 8    //使用几个CPU来运,越多速度越快
(opencv) ~]# make install
....
-- Set runtime path of "/usr/local/python/cv2/python-3.4/cv2.cpython-34m.so" to "/usr/local/lib64"
...
//这时已经安装好,并且生成了相应.so文件,我们只需把库文件拷贝到相应python版本的库目录下即可
(opencv) ~]# cp -a /usr/local/python/cv2/python-3.4/cv2.cpython-34m.so /usr/local/pkg/.pyenv/versions/3.4.1/lib/python3.4/cv2.so
(opencv) ~]#

六、测试

(opencv) ~]# python
>>> import cv2
>>> cv2.__version__
'3.4.4'

官方文档:https://docs.opencv.org/3.4.4/dd/dd5/tutorial_py_setup_in_fedora.html#gsc.tab=0

转载于:https://www.cnblogs.com/dance-walter/p/10155342.html

centos下安装opencv相关推荐

  1. opencv python安装 centos_centos下安装opencv

    根据项目需要,安装opencv并提供给开发使用,并且使用opencv提供python3的API接口.虽然不知道是个啥,还是简单了解下. opencv是什么? OpenCV的全称是Open Source ...

  2. Centos下安装mysql 总结

    一.MySQL安装 Centos下安装mysql 请点开:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html 二.MySQL的几个 ...

  3. linux卸载欧朋浏览器,如何在Centos下安装opera浏览器

    如何在Centos下安装opera浏览器 ,Opera目前是Linux平台上性能最优的浏览器,而且Opera中国团队本身即定位于Opera的研发中心,主要也是负责全球Linux平台项目的开发,这个版本 ...

  4. Mac-OSX的Python3.5虚拟环境下安装Opencv

    Mac-OSX的Python3.5虚拟环境下安装Opencv 1   关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2   概述 本文是一篇 环境搭建 的基础 ...

  5. 在CentOS下安装apche+tomcat+mysql+php

    在CentOS下安装apche+tomcat+mysql+php 本例中所用到的软件 Apache 2.2 Sun的JDK-1_5_0_12-linux-i586 MySQL: mysql-5.0.4 ...

  6. python连接opencv库_python环境下安装opencv库的方法

    注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...

  7. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  8. CentOS下安装JDK7 转载

    转载地址:http://www.cnblogs.com/rilley/archive/2012/02/02/2335395.html CentOS下安装JDK7 下载地址:http://www.ora ...

  9. centos解压zip命令_2、centos下安装elasticsearch-head

    1.下载 https://github.com/mobz/elasticsearch-head/archive/master.zip 2.解压 unzip elasticsearch-head-mas ...

最新文章

  1. R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值
  2. 排序算法四:归并排序
  3. #每日播报# 8月6日 Github 热门项目汇总
  4. WinForm实现窗体最小化后小图标在右边任务栏下
  5. MySQL group_concat()函数
  6. C#基础---Queue(队列)的应用
  7. android 权限组件设计
  8. MySQL视图,触发器,事务,存储过程,函数
  9. 一样的Java,不一样的HDInsight大数据开发体验
  10. winform读写config文件
  11. MAC上Maven下载及安装
  12. 植物大战僵尸修改器 - 简易版
  13. PostgreSQL下载、安装和配置使用
  14. 利用ipconfig命令查看IP及释放和重获IP
  15. MDK5.30下载来了,含镜像下载地址,ARM同时带来Cortex-M55调试展示(2020-05-05)
  16. 游戏设计模式阅读笔记3——重访设计模式(观察者模式)
  17. 数字后端基本概念介绍Shape Blockage
  18. 如何快速入门成为一名数据分析师
  19. 格理论与密码学(二)
  20. 给网页的标签头部添加小图标方法

热门文章

  1. sourcetree的安装及使用
  2. 三角形垂点坐标js算法(三点定圆求圆心)
  3. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常...
  4. 解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题
  5. 常用SQL语句大全总结
  6. Interface接口
  7. LAMP搭建discuz
  8. chrome打开清除浏览数据窗口快捷键
  9. 【TypeScript】TypeScript 学习 3——类
  10. docker create_Docker镜像管理(一)