文档章节

MacOS的Python3.6下安装OpenCV3.2.0

德布罗意
 德布罗意
发布于 2017/06/26 14:54
字数 852
阅读 96
收藏 0

本机环境说明

当前各项版本为:

系统和软件版本号
macOS Sierrav10.12.5
Python3v3.6.1
OpenCV(待安装)v3.2.0

其他要求:XcodeHomebrew

安装虚拟环境工具virtualenvwrapper(可选)

$ pip3 install virtualenv virtualenvwrapper

更新~/.bash_profile

# Virtualenv/VirtualenvWrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

重新加载.bash_profile

$ source ~/.bash_profile

创建cv3虚拟环境用来编译OpenCV(注意这里使用-p python3参数来确保Python3使用):

$ mkvirtualenv cv3 -p python3

随后将进入cv3虚拟环境中。之后无论什么时候再次希望进入这个虚拟环境,执行命令:

$ workon cv3

安装OpenCV的依赖包

在该虚拟环境下,安装Numpypip也将智能匹配适合此环境下的依赖包,因此无需pip3):

$ pip install numpy

为了从源文件编译OpenCV,读取各种格式的图片,以及OpenCV自身优化依赖需要安装以下包:

$ brew install cmake pkg-config
$ brew install jpeg libpng libtiff openexr
$ brew install eigen tbb

编译OpenCV

git基本模块

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

git扩展模块(需要确保与基本模块版本匹配)

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

现在所需文件已经存在于本地目录中,创建build文件夹:

$ cd ~/opencv
$ mkdir build
$ cd build

cmake进行配置(创建Makefile)(注意这里有许多的3.6,这些部分表明是版本依赖的,如果编译其他版本需要进行相应修改):

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

在CMake输出中找到以下段落,如果To be built中包括python3(一般在最后)

--   OpenCV modules:
--     To be built:                 core flann imgproc ml photo reg surface_matching video dnn fuzzy imgcodecs shape videoio highgui objdetect plot superres ts xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo tracking videostab xfeatures2d ximgproc aruco optflow phase_unwrapping stitching structured_light python3

并且可以在输出中找到以下段落(注意各个3.6版本的正确依赖)

--   Python 3:
--     Interpreter:                 /Users/yitao/.virtualenvs/cv3/bin/python3 (ver 3.6.1)
--     Libraries:                   /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6m.dylib (ver 3.6.1)
--     numpy:                       /Users/yitao/.virtualenvs/cv3/lib/python3.6/site-packages/numpy/core/include (ver 1.13.0)
--     packages path:               /Users/yitao/.virtualenvs/cv3/lib/python3.6/site-packages

说明到目前为止一切很顺利,如果有问题,参看参考资料Step 6。 在没有任何报错的情况下,我们就可以用make编译了!(-j4与系统的内核数有关,不是必需的)

$ make -j4

经过一阵漫长的等待(不到半个小时),如果整个过程都没有报错,就可以安装啦(尽管我没有遇到什么问题,但是如果有问题的话,用sudo即可)!

$ make install 

至此,已经完成OpenCV的安装了。

检查安装是否成功

在Python3的site-packages目录下查看是否存在文件cv2.so

$ cd ~/.virtualenvs/cv3/lib/python3.4/site-packages/
$ ls -l cv2.so

如果不存在(很不幸,我的就不存在,这好像是Python3.5+版本的通病),将cv2.cpython-36m-darwin.so文件重命名为cv2.so,更推荐保留原文件做备份:

$ cp cv2.cpython-36m-darwin.so cv2.so

最后尝试打开python3的console,来看看能否顺利导入

(cv3) YideMacBook-Pro:site-packages yitao$ python3
Python 3.6.1 (default, Apr  4 2017, 09:40:21) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'

成功啦!!

© 著作权归作者所有

共有 人打赏支持
德布罗意
粉丝 0
博文 3
码字总数 4252
作品 0
海淀
程序员
OSX malware and exploit collection (~100 files) + links and resources for OSX malware analysis

此文为关于MAC OSX系统的所有攻击脚本和溢出代码的收藏集。附带资源链接和相关讲解文档~mark下 'Tis the season. Here is a nice collection of ~100 Mac OS malware and Word document expl...

Cnlouds
2013/11/26
0
2
Mac OSX操作系统安装和配置Zend Server 6教程(1)

作为web开发人员,应该熟悉掌握各种系统下安装和配置web服务器与站点的技术。 随着越来越多的开发人员选择Zend Server服务器,慧都推出了在Mac OSX系统安装和配置Zend Server 6教程,此教程将...

kouxunli1
2013/10/15
0
0
历经11个测试版,苹果 macOS Mojave 正式版发布

苹果今天发布了 macOS Mojave 正式版,Mojave 一共经历了 11 个测试版。Mac 用户可以免费下载和安装 Mojave。下载地址 >>> https://itunes.apple.com/us/app/macos-mojave/id1398502828?mt=1......

局长
09/25
0
47
mac:macOS开机恢复系统或选择不同系统

如果您无法从 macOS 恢复功能启动 无法通过内建恢复系统启动时,新款 Mac 电脑及部分旧款 Mac 电脑会自动尝试通过互联网从 macOS 恢复功能启动。出现这种情况时,您在启动期间将会看到旋转的...

Oh_really
08/25
0
0
macOS 开启 VNC 远程桌面和 SSH 服务

macOS 开启 VNC 远程桌面和 SSH 服务 准备用 macOS 来做为服务器,既然是服务器,那不可缺少的是远程管理,实际上 macOS 自带 VNC 远程桌面和 SSH 服务,只是默认没有开启,下面我们来开启它...

exchen
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解析高可用分布式键值存储 etcd 的原理

这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议、存储两大模块,在最后我们也会简单介绍 etcd 一些具体应用场景。 etcd 的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整...

小刀爱编程
17分钟前
1
0
在ubuntun虚拟机里安装goLang语言编程环境

Go语言是谷歌2009发布的第二款开源编程语言。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 北京时间201...

JerryWang_SAP
18分钟前
5
0
c++builder导出函数export function DLL

__stdcall __export 即可,如: ulong __stdcall __export od_disasm(char *src,ulong srcsize,ulong srcip, t_disasm *disasm,int disasmmode){ return Disasm(src,srcsiz......

simpower
20分钟前
2
0
KDC服务安装及配置

阿伦哥-
23分钟前
1
0
mybatis-plus公共字段操作以及springboot2整合mybatis-plus

1、公共实体 对于User类中有而user表中没有的属性需要加第二个注解@TableField(exist = false),表示排除User类中的属性 所有新增公共字段加注解 并指定 @TableField(value = "corp_code",fi...

glen_xu
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部