文档章节

MacOS的Python3.6下安装OpenCV3.2.0

德布罗意
 德布罗意
发布于 2017/06/26 14:54
字数 852
阅读 75
收藏 0
点赞 0
评论 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
海淀
程序员
Python 2.7.15 发布,bug 修复版本

Python 2.7.15 发布,此版本是 Python 2.7 系列的 bug 修复版本。 macOS 用户需要关注一下,从2.7.15版本开始,所有 python.org macOS 安装程序都附带了 OpenSSL 的内置副本。此外,还有一个...

雨田桑 ⋅ 05/03 ⋅ 0

WebKit 继续泄密,macOS 10.14 将支持深色模式

今天早些时候,根据 WebKit 的代码我们发现,iOS 12 可能会继续支持 iPhone 5s。现在,又有国外的朋友在 WebKit 代码中发现了其他信息。首先,我们了解下 WebKit 到底是什么。Webkit 是一种渲...

达尔文 ⋅ 04/21 ⋅ 0

苹果弃用 OpenCL 和 OpenGL ,OpenCL 或遭全面淘汰

随着昨天 MacOS 10.14 Mojave 的发布,苹果悄然证实,他们已弃用 OpenGL 和 OpenCL 。 在 MacOS 10.14 的更新文档中,苹果表示使用 OpenGL 和 OpenCL 构建的应用可以继续在 macOS 10.14 中运...

王练 ⋅ 06/06 ⋅ 0

苹果宣布将在 2019 年推出 iOS 和 macOS 跨平台功能

苹果 macOS 和 iOS 设备在功能方面越来越接近,现在苹果正在缩小这一差距。在昨天的 WWDC 开发者大会上,苹果表示不会将 iOS 和 macOS 进行合并,而是让 iOS 应用移植到 macOS 上变得更加简单...

王练 ⋅ 06/05 ⋅ 1

Python 2.7.15 candidate 1 现已发布

Python 2.7.15 candidate 1 现已发布,预计在 4 月底发布最终的 2.7.15 版本。 Python 2.7.15 candidate 1 是 Python 2.7.15 的预览版,它是 Python 2.x 系列中的下一个错误修复版本。 注意 ...

周其 ⋅ 04/16 ⋅ 4

丁伟强/WizQTClient

WizNote for Mac/Linux cross-platform cloud based note-taking client WizNote is an open-sourced project, published under GPLv3 for individual/personal users and custom commercial......

丁伟强 ⋅ 04/19 ⋅ 0

Krita 4.0.4 正式发布,开源数字绘画软件

Krita 开发小组在今天正式发布 Krita 4.0.4 版,这是 Krita 4.0.0 的一个问题修正版本,也是该系列的最后一次维护性更新。 Krita 的中文翻译在这一版得到了大幅更新,但是少数字符串因为在源...

TysonTan ⋅ 06/14 ⋅ 0

Mac下SSH连接远程服务器一段时间后X11报错

问题描述:在MacOS中用ssh -X连接远程服务器,刚开始时X11转播正常,能正常开启图像界面,如用ipython画图之类的。但一段时间后当需要再次开启某个图像界面时报错: 此时需要断开当前ssh连接...

Lynn_AIR ⋅ 06/03 ⋅ 0

FreeFileSync 10.1 发布,开源文件夹同步备份软件工具

FreeFileSync 10.1 已发布,FreeFileSync 是一个开源的文件夹比较和同步工具,界面简洁,只需简单的设置就可以实现文件夹的比较和同步操作。 本次更新记录如下,主要是进行了一些 bug 修复,...

局长 ⋅ 06/04 ⋅ 0

LDC 1.9.0 发布,基于 LLVM 架构的 D 语言编译器

Kinke 代表LDC团队,很高兴地宣布LDC 1.9,这个版本的重点是: 编译器兼容 dlang 2.079.1 (引入了新的 -i 参数来支持最小D语言运行时); 支持 llvm 6,用于所有预构建包(Win32除外); 可...

冰力 ⋅ 05/13 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周六乱弹 —— 假如你被熊困到树上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》 《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》- 谢...

小小编辑 ⋅ 39分钟前 ⋅ 4

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 今天 ⋅ 1

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部