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

1   关键词

关键词:Mac,OSX,Python3.5,Virtualenv,Opencv

2   概述

本文是一篇 环境搭建 的基础文。

为了这个东西让自己折腾了接近2天的时间,各种筛选资料,各种尝试,最后终于找到了相应的资料,然后成功安装。

在整理本文的时候,特别感谢这个作者,他提供了两篇安装opencv的方法,分别是 python2.x [1] 和 python3.x [2] 。

笔者按照 3.x 的步骤和线索,再解决掉一些文中未的提及的中间问题,最后终于成功安装。

由于主要步骤和原文没有太大出入,所以本文纯粹是原文的中文布道版吧。

本文适合读者群:

  • MaxOSX用户
  • Python用户
  • 使用OpenCV进行图片处理的用户

3   安装步骤

  1. Mac OSX

    苹果OSX操作系统

  2. HomeBrew

    软件库安装命令行

  3. python3.5

  4. virtualenv

    虚拟环境

  5. pip安装Numpy

  6. 安装Xcode

    直接从AppStore里面下载安装

  7. opencv3

除去最后一条的所有先决条件,由于比较简单而且中文资料丰富,本文就假设用户已经全部顺利完成了。本文的重点是最后的 opencv3 的部分。

注意:

  • 本文建立的基于python3.5的虚拟环境目录为 ~/py3venv/ ,在后续的编译阶段配置里面会用到。
  • 由于本文会涉及到很多在线安装部分,所以请读者先具备科学上网的技能

4   Opencv下载

由于opencv官方提供的是源码,所以需要用户下载下来并进行相应平台的编译。主要需要下载两个相关的仓库:

  • opencv.git

    opencv核心库

  • opencv_contrib.git

    opencv扩展模块

注意:

  • 必须两个都下载,因为后面的配置里面会用到的

  • 全部都切换到统一版本:3.0.0

    截至7月13日,最新tag号:3.0.1,但是本文并没有试验成功,而3.0.0是成功的

以下是相关的命令行。

下载 opencv.git 仓库 [2] :

$ cd ~
$ git clone https://github.com/Itseez/opencv.git
$ cd opencv
$ git checkout 3.0.

下载 opencv_contrib.git 仓库 [2] :

$ cd ~
$ git clone https://github.com/Itseez/opencv_contrib
$ cd opencv_contrib
$ git checkout 3.0.

注意:

  • 下载目录都在用户文件的根目录 ~
  • 此路径信息会在后续的编译配置里面用到

5   Opencv编译

在下载下来的opencv目录下面新建build目录 [2] :

$ cd ~/opencv
$ mkdir build
$ cd build

在build目录下面执行 cmake 命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_PACKAGES_PATH=~/py3venv/lib/python3./site-packages \
-D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.5./Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib \
-D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.5./Frameworks/Python.framework/Versions/3.5/include/python3.5m \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..

注意:

  • 这是MaOSX下python3.5虚拟环境的配置
  • 请认真对照每个路径在本电脑上是否正确
  • 本文对比参考资料进行了如下修改:INSTALL_C_EXAMPLES设置为OFF
  • 在续行符号后面另起的行前面都有 -D
  • 命令最后面的 .. 符号并不是省略号,而是命令行的一部分

在执行命令后,检查在shell中输出信息,以确认是否成功编译。

查看build列表 To be built 包含 python3 信息:

--   OpenCV modules:
-- To be built: hal core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab python3
-- Disabled: world
-- Disabled by dependency: -

查看和 python3.5 相关联的设置信息:

--   Python :
-- Interpreter: /Users/harmo/py3venv/bin/python3 (ver 3.5.)
-- Libraries: /usr/local/Cellar/python3/3.5./Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib (ver 3.5.)
-- numpy: /Users/harmo/py3venv/lib/python3./site-packages/numpy/core/include (ver 1.11.)
-- packages path: /Users/harmo/py3venv/lib/python3./site-packages

查看shell输出的结尾成功信息:

-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/harmo/Downloads/opencv/build

如果cmake成功,在build目录会生成一系列文件:

(py3venv) ➜  build git:(c12243c) ✗ ls
3rdparty Makefile bin doc opencv2
CMakeCache.txt OpenCVConfig-version.cmake cmake_install.cmake include osx
CMakeFiles OpenCVConfig.cmake cmake_uninstall.cmake junk samples
CPackConfig.cmake OpenCVModules.cmake cvconfig.h lib unix-install
CPackSourceConfig.cmake apps data modules version_string.tmp

然后就可以编译 opencv 了,执行

make -j4

说明:如果想编译得更快速,可以修改命令中的数字 4 为你电脑的可用CPU核心数,来实现多核编译。

编译过程有点漫长,但好在shell中会有进度条提示,耐心等待几分钟即可。

6   编译常见问题

在cmake阶段,可能会出现一些异常提示,在此列出。

6.1   自检提示

在cmake的过程中,会遇到这样的异常提示:

-- Checking for module 'gstreamer-base-1.0'
-- No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
-- No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
-- No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
-- No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
-- No package 'gstreamer-pbutils-1.0' found

可以不用理会,是否安装成功,以前面提到的那样的python3.5字样为准。

6.2   ippicv文件

程序在执行到:

-- ICV: Downloading ippicv_macosx_20141027.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake: (file):
file DOWNLOAD HASH mismatch

会提示下载的文件的hash值不对,然后中止执行。

参考另外一篇文章 [3] ,文中提出的解决方案如下:

需要这个文件然后覆盖过去。

wget http://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/o/op/opencvlibrary/3rdparty/ippicv/ippicv_macosx_20141027.tgz

将自己下载 ippicv_macosx_20141027.tgz 复制到 ~/opencv/3rdparty/ippicv/downloads/macosx-9662fe0694a67e59491a0dcc82fa26e0/ippicv_macosx_20141027.tgz 替换到旧的文件。

7   Opencv安装

如果在前面步骤中,成功编译,就可以开始安装了:

make install

如果提示权限问题,请执行:

sudo make install

如果没有任何问题,那么恭喜安装成功。

8   验证检查

在成功安装opencv后,需要进行一次 验证检查 操作。

检查虚拟环境 py3venv 中是否存在文件 cv2.so :

(py3venv) ➜  py3venv pwd
/Users/harmo/py3venv
(py3venv) ➜ py3venv cd lib/python3./site-packages
(py3venv) ➜ site-packages ls -l|grep cv
-rwxr-xr-x harmo staff : cv2.cpython-35m-darwin.so
lrwxr-xr-x harmo staff : cv2.so -> /usr/local/Cellar/opencv3/3.1.0_3/lib/python2./site-packages/cv2.so

在 python3.5 中使用 opencv 相应的库文件:

(py3venv) ➜  site-packages python
Python 3.5. (default, Jan , ::)
[GCC 4.2. Compatible Apple LLVM 7.0. (clang-700.1.)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0'
>>>

如果走到这一步,最后恭喜你,你成功安装了opencv了。

安装opencv后可以做什么了?

各种图片处理,人脸识别,移动检测报警等等好玩的opencv的开箱即用的功能等着你去开发了,尽情享受和玩耍吧。

Enjoy it~!

9   本文小结

在完成环境搭建后,特意将正确的过程记录下来吧。一方面让自己今后再做类似的事情不再曲折,另外一方面也让有相同的需求的朋友少走点弯路吧,至少不用再花费几天的时间去查找各种资料和试错了。

10   参考资料

查找了很多资料,最具有参考价值的就是如下几篇,感谢原作者。

[1] Install OpenCV 3.0 and Python 2.7+ on OSX http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/
[2] (1234) Install OpenCV 3.0 and Python 3.4+ on OSX http://www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/
[3] ippicv_macosx_20141027.tgz问题 http://blog.csdn.net/alanzjl/article/details/47294751

作者: Harmo哈莫
作者介绍: https://zhengwh.github.io
技术博客: http://www.cnblogs.com/beer
Email: dreamzsm@gmail.com
QQ: 1295351490
时间: 2016-02
版权声明: 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】
支持本文: 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】

Mac-OSX的Python3.5虚拟环境下安装Opencv的更多相关文章

  1. win10 +python3.6环境下安装opencv以及pycharm导入cv2有问题的解决办法

    一.安装opencv 借鉴的这篇博客已经写得很清楚了--------https://blog.csdn.net/u011321546/article/details/79499598       ,这 ...

  2. Python3.5环境下安装wxPtyhon

    Win7系统下,Python3.5环境下安装wxPtyhon, 已成功安装并运行. 1.先从下面网站下载对应的whl版本. https://wxpython.org/Phoenix/snapshot- ...

  3. windows 虚拟环境下 安装 mysql 引擎一系列错误处理

    报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...

  4. debian+python3.5环境下安装paramiko模块:

    debian+python3.5环境下安装paramiko模块: 1.确保安装了操作系统安装了libssl-dev,zlib1g-dev  (redhat,centos下这两包包名为openssl-d ...

  5. linux下使用pip在虚拟环境下安装tensorflow-gpu

    1. 查看已安装包库 pip list 2. linux下下载虚拟环境 sudo apt-get install python-virtualenv 3.建立全新的virtualenv环境 virtu ...

  6. 在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法

    在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法,我刚开始因为不太会用linux命令,所以一直依赖于python 的pip命令,可是怎么都 ...

  7. Windows虚拟环境下安装mysql-python

    因为在虚拟环境下安装mysql-python走了许多弯路,特此记录,也希望以后的朋友避免像我一样,被环境配置问题搞的半死 直接使用pip安装mysql-python会报错 pip install My ...

  8. Ubuntu 14.04 下安装 OpenCV

    参考: Installation in Linux Error compiling OpenCV, fatal error: stdlib.h: No such file or directory 图 ...

  9. Ubuntu 12.04下安装OpenCV 2.4.2

    http://sourceforge.net/projects/opencvlibrary/files/ Ubuntu 12.04下安装OpenCV 2.4.2 http://blog.csdn.ne ...

随机推荐

  1. accept_mutex与性能的关系 (nginx)

    注:运行环境CentOS 6+   背景      在对启动了20个worker的nginx进行压力测试的时候发现:如果把配置文件中event配置块中的accept_mutex开关打开(1.11.3版 ...

  2. SSH实战 · 用spring框架下的hibernatetemplate的get方法出现的问题

    用get方法查询:      return this.getHibernateTemplate().get(Product.class, pid); 出现错误为:id to load is requi ...

  3. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  4. Bootstrap-Select 动态加载数据的小记

    关于前端框架系列的可以参考我我刚学Bootstrap时候写的LoT.UI http://www.cnblogs.com/dunitian/p/4822808.html#lotui bootstrap- ...

  5. 用scikit-learn学习BIRCH聚类

    在BIRCH聚类算法原理中,我们对BIRCH聚类算法的原理做了总结,本文就对scikit-learn中BIRCH算法的使用做一个总结. 1. scikit-learn之BIRCH类 在scikit-l ...

  6. html5的web存储

    在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...

  7. 【Reading Note】Python读书杂记

    赋值 >>> list=[] >>> app=[list,list,list] >>> app [[], [], []] >>> ...

  8. webstorm下载&&安装过程&&打开项目

    一.webstorm下载 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HT ...

  9. [开发笔记] Graph Databases on developing

    TimeWall is a graph databases github It be used to apply mathematic model and social network with gr ...

  10. android SystemServer.java启动的服务。

    EntropyService:熵(shang)服务,用于产生随机数PowerManagerService:电源管理服务ActivityManagerService:最核心服务之一,Activity管理 ...