步骤概览
- 安装
Xcode以及Apple Command Line Tools - 安装
Homebrew - 创建
Python虚拟环境 - 安装
NumPy - 安装
OpenCV
安装Xcode以及Apple Command Line Tools
- 从App Store下载并安装Xcode。
- 接受Apple开发者协议。
sudo xcodebuild -license - 安装
Apple Command Line Tools
输入上面的命令后,会弹出一个窗口,确认你想要安装命令行工具,点击sudo xcode-select --installinstall或安装按钮进行安装。
安装Homebrew
Homebrew是MacOS的包管理器,类似于Ubuntu的apt-get。
安装命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"一旦安装了Homebrew,您应该对其进行更新,以确保下载最新的软件包定义:
brew update修改环境变量文件,如果你用的是
bash请球盖vi ~/.bash_profile,如果你用的是zsh请修改vi ~/.zshrc,添加如下内容到对应的文件:# Homebrew export PATH=/usr/local/bin:$PATH使用
source命名来让配置生效:source ~/.bash_profile或source ~/.zshrc。
创建Python虚拟环境
MacOS默认已安装Python,不同的MacOS版本可能对应的Python版本不同。可以使用python --version来获取当前系统中的Python版本。如果当前版本不是2.7.x,可以使用Homebrew来安装:brew install python安装完成之后,我们需要把操作系统的
python链接到Homebrew的安装目录:brew linkapps python检查安装是否正确:
which python如果输出的路径是
/usr/local/bin/python则说明安装Python成功。安装虚拟环境
由于在OS X El Capitan中,在内核下引入了Rootless机制,即使root用户也无法对
/System、/bin、/sbin、/usr(except /usr/local)目录有写和执行权限,只有Apple以及Apple授权签名的软件(包括命令行工具)可以修改此目录。因此在使用操作系统自带的
Python时,使用pip安装某些包时会存在失败的情况。所以我们在这里使用python虚拟环境来规避这个问题。pip install virtualenv virtualenvwrapper安装完成之后,我们需要再次修改环境变量文件,如果你用的是
bash请球盖vi ~/.bash_profile,如果你用的是zsh请修改vi ~/.zshrc,添加如下内容到对应的文件:# Virtualenv/VirtualenvWrapper source /usr/local/bin/virtualenvwrapper.sh使用
source命名来让配置生效:source ~/.bash_profile或source ~/.zshrc。创建虚拟环境
mkvirtualenv opencv上面命名创建了一个名叫
opencv的虚拟环境,你可以使用workon opencv进入虚拟环境,也可以使用deactivate指令从虚拟环境中退出。
安装NumPy
- 进入虚拟环境:
workon opencv pip install numpy
安装OpenCV
环境准备:
brew install cmake pkg-config brew install jpeg libpng libtiff openexr brew install eigen tbb从github下载OpenCV3
cd ~ git clone https://github.com/opencv/opencv git clone https://github.com/opencv/opencv_contrib下载完成之后,进入源码目录切换到指定的版本,譬如安装OpenCV的3.3.1版本:
cd ~/opencv git checkout -b 3.3.1 3.3.1 cd ~/opencv_contrib git checkout -b 3.3.1 3.3.1配置
CMakecd ~/opencv mkdir build cd build接着我们就可以执行
cmake命令了,但在执行命令之前有两个参数需要调整:cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D PYTHON2_LIBRARY=YYY \ -D PYTHON2_INCLUDE_DIR=ZZZ \ -D PYTHON2_EXECUTABLE=/usr/local/bin/python \ -D BUILD_opencv_python2=ON \ -D BUILD_opencv_python3=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D BUILD_EXAMPLES=ON ..cmake重要参数解释:
BUILD_opencv_python2=ON:这表明我们要基于Python2.7来安装OpenCV 3;BUILD_opencv_python3=OFF:这表明我们关闭Python3;PYTHON2_LIBRARY=YYY:这是你自己填写的第一个值。您将需要用您的libpython2.7.dylib文件的路径替换YYY(我将帮助您在下一节中找到它);PYTHON2_INCLUDE_DIR=ZZZ:这是您需要填写的第二个值。您需要将ZZZ替换为Python.h头文件所在目录的路径(同样,我将帮助您确定此路径)获取
PYTHON2_LIBRARY的路径ls /usr/local/Cellar/python/2.7.*/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib将上面的输出拷贝出来替换掉
PYTHON2_LIBRARY=YYY中的YYY。获取
PYTHON2_INCLUDE_DIR的路径ls -d /usr/local/Cellar/python/2.7.*/Frameworks/Python.framework/Versions/2.7/include/python2.7/将上面的输出拷贝出来替换掉
PYTHON2_INCLUDE_DIR=ZZZ中的ZZZ。替换完成之后即可执行。
编译与安装
make -j4-j开关控制并发编译OpenCV的处理器数量,因为我在四核系统上,所以我用-j4。编译可能需要几十分钟左右。如果编译没有出错就可以进行安装了
sudo make install安装成功后,可以在
/usr/local/lib/python2.7/site-packges/下找到cv2.so文件。在虚拟环境中添加
cv2.so的软连接cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so cv2.so测试与验证OpenCV
打开一个新的终端:
$ workon opencv $ python Python 2.7.12 (default, Oct 11 2016, 05:20:59) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.3.1 >>>
如何完整的卸载OpenCV?
- 可以通过进入之前的build目录,执行
make uninstall来完整卸载OpenCV.


