Mac-OSX的Python3.5虚拟环境下安装Opencv
1 关键词
关键词:Mac,OSX,Python3.5,Virtualenv,Opencv
2 概述
本文是一篇 环境搭建 的基础文。
为了这个东西让自己折腾了接近2天的时间,各种筛选资料,各种尝试,最后终于找到了相应的资料,然后成功安装。
在整理本文的时候,特别感谢这个作者,他提供了两篇安装opencv的方法,分别是 python2.x 和 python3.x 。
笔者按照 3.x 的步骤和线索,再解决掉一些文中未的提及的中间问题,最后终于成功安装。
由于主要步骤和原文没有太大出入,所以本文纯粹是原文的中文布道版吧。
本文适合读者群:
- MaxOSX用户
- Python用户
- 使用OpenCV进行图片处理的用户
3 安装步骤
-
- Mac OSX
-
苹果OSX操作系统
-
-
- HomeBrew
-
软件库安装命令行
-
-
python3.5
-
- virtualenv
-
虚拟环境
-
-
pip安装Numpy
-
- 安装Xcode
-
直接从AppStore里面下载安装
-
-
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 仓库 :
$ cd ~$ git clone https://github.com/Itseez/opencv.git$ cd opencv$ git checkout 3.0.0
下载 opencv_contrib.git 仓库 :
$ cd ~$ git clone https://github.com/Itseez/opencv_contrib$ cd opencv_contrib$ git checkout 3.0.0
注意:
- 下载目录都在用户文件的根目录 ~
- 此路径信息会在后续的编译配置里面用到
5 Opencv编译
在下载下来的opencv目录下面新建build目录 :
$ 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.5/site-packages \-D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib \-D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.5.1/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 3:-- Interpreter: /Users/harmo/py3venv/bin/python3 (ver 3.5.1)-- Libraries: /usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib (ver 3.5.1)-- numpy: /Users/harmo/py3venv/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)-- packages path: /Users/harmo/py3venv/lib/python3.5/site-packages
查看shell输出的结尾成功信息:
-- --------------------------------------------------------------------- Configuring done-- Generating done-- Build files have been written to: /Users/harmo/Downloads/opencv/build
如果cmake成功,在build目录会生成一系列文件:
(py3venv) ➜ build git:(c12243c) ✗ ls3rdparty Makefile bin doc opencv2CMakeCache.txt OpenCVConfig-version.cmake cmake_install.cmake include osxCMakeFiles OpenCVConfig.cmake cmake_uninstall.cmake junk samplesCPackConfig.cmake OpenCVModules.cmake cvconfig.h lib unix-installCPackSourceConfig.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:71 (file): file DOWNLOAD HASH mismatch
会提示下载的文件的hash值不对,然后中止执行。
参考另外一篇文章 ,文中提出的解决方案如下:
需要这个文件然后覆盖过去。
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.5/site-packages(py3venv) ➜ site-packages ls -l|grep cv-rwxr-xr-x 1 harmo staff 2021204 7 7 18:11 cv2.cpython-35m-darwin.solrwxr-xr-x 1 harmo staff 68 7 6 18:50 cv2.so -> /usr/local/Cellar/opencv3/3.1.0_3/lib/python2.7/site-packages/cv2.so
在 python3.5 中使用 opencv 相应的库文件:
(py3venv) ➜ site-packages pythonPython 3.5.1 (default, Jan 22 2016, 08:54:32)[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import cv2>>> cv2.__version__'3.0.0'>>>
如果走到这一步,最后恭喜你,你成功安装了opencv了。
安装opencv后可以做什么了?
各种图片处理,人脸识别,移动检测报警等等好玩的opencv的开箱即用的功能等着你去开发了,尽情享受和玩耍吧。
Enjoy it~!
9 本文小结
在完成环境搭建后,特意将正确的过程记录下来吧。一方面让自己今后再做类似的事情不再曲折,另外一方面也让有相同的需求的朋友少走点弯路吧,至少不用再花费几天的时间去查找各种资料和试错了。
10 参考资料
查找了很多资料,最具有参考价值的就是如下几篇,感谢原作者。
http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/ |
[2] | (, , , ) http://www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/ |
http://blog.csdn.net/alanzjl/article/details/47294751 |
作者: | Harmo哈莫 |
---|---|
作者介绍: | |
技术博客: | |
Email: | |
QQ: | 1295351490 |
时间: | 2016-02 |
版权声明: | 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】 |
支持本文: | 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】 |