在 macOS 上安装 OpenCV

使用源码进行编译,在macOS 上安装 OpenCV 4 。
macOS 版本:macOS Big Sur 11.4。

虽然可以参考这篇文章,使用 pip 快速的安装,但使用 pip 安装的 OpenCV 缺少一些算法,因此这篇文章介绍通过编译源码的方式,完整安装官方版本的 OpenCV。


本文目录

  • 1.安装 Xcode
  • 2.安装 Homebrew 及依赖包
    • 2.1 安装 Homebrew
    • 2.2 使用 Homebrew 安装依赖包
    • 2.3 安装 pip 并配置虚拟环境
  • 3. 下载并编译 OpenCV 4
    • 3.1 下载 OpenCV 4
    • 3.2 对 OpenCV 源代码进行编译并安装
  • 4. 将 OpenCV 4 链接到虚拟环境
  • 5. 验证安装情况
  • 6. 总结


简单而言,在 macOS 上安装 OpenCV,需要首先安装 XcodeHomebrew,之后建立 Python 虚拟环境(可选),最后再使用源码编译安装 OpenCV 4。

1.安装 Xcode

Xcode 是 Apple 提供的集成应用环境,可在 macOS 上免费下载使用。

使用 macOS 上的 App Store,搜索并下载安装 Xcode

安装完成后,需要接受 license 许可。打开一个 终端(Terminal) 窗口,输入以下命令:

sudo xcodebuild -license

向下滑动,接受许可。之后需要安装 Apple Command Line Tools

sudo xcode-select --install

在 macOS 上安装 OpenCV_第1张图片

点击 “安装(Install)” 按钮,即可安装完成,就具备了 makegccclang 等编译器工具。

2.安装 Homebrew 及依赖包

2.1 安装 Homebrew

Homebrew 的官方解释是: macOS(或 Linux)缺失的软件包的管理器,可以用于安装非预装的软件包。

由于种种原因,国内的同学无法直接通过官方渠道安装 Homebrew,有网友自己建立了中文的安装脚本:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

按照中文指示,选择安装源即可完成安装:

在 macOS 上安装 OpenCV_第2张图片

另外,卸载 Homebrew 的命令是:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

安装完成后,可以使用下面的命令进行升级:

brew update

然后对 macOS 的环境变量文件(bash_profile)进行修改,可以使用 vimnanoemacs 的不同的编辑器进行修改:

vim ~/.bash_profile

VIM 的常见命令可以参考本文。

并在其中增加 Homebrew 的路径:

# Homebrew
export PATH=/usr/local/bin:$PATH

保存并退出 .bash_profile 文件,并执行 bash 文件使修改生效:

source ~/.bash_profile

2.2 使用 Homebrew 安装依赖包

在安装了 OpenCV 之前,还需要使用 Homebrew 安装一些编译所需的工具,同时也需要一些读取 JPEG、PNG、TIFF 等格式图像的 I/O 工具以及其他优化包等依赖包。

可以使用下面的命令安装这些依赖包:

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

除了上面工具外,建议安装一个 wget 工具,便于使用命令行进行下载:

brew install wget

同时,建议安装一个 git 工具,便于从 GitHubGitee 等网站直接下载1

brew install git

2.3 安装 pip 并配置虚拟环境

可以参考我之前写的 这篇文章 中有关安装 pip 并配置 Python 虚拟环境的相关内容。

同时,如果使用国内镜像较慢时,可以考虑 将 pip 使用的源修改为国内的镜像源。

使用下面命令设置虚拟环境 cv_test

mkvirtualenv cv_test -p python3

通过 workon cv_tset 命令进入虚拟环境:

在 macOS 上安装 OpenCV_第3张图片

同时,在这个虚拟环境下安装 Numpy

pip install numpy

3. 下载并编译 OpenCV 4

相比使用 pipHomebrewAnaconda 等工具,对 OpenCV 进行编译安装,可以有更多的模块和功能可用。

3.1 下载 OpenCV 4

OpenCV 包括了 opencv 和 opencv_contrib 两种安装包。其中 opencv_contrib 包括了附加模块,建议使用该安装包(但是同时也需要 opencv 的包。

可以使用 wget 从 OpenCV 的官方 GitHub 仓库下载(以 4.0.0 版本为例):

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

如果安装了 git,可以直接克隆/下载一下 OpenCV 的在线 Git 库:

git clone https://gitee.com/idledo/opencv.git
git clone https://gitee.com/idledo/opencv_contrib.git

同样,由于众所周知的网络原因,我没用 OpenCV 的官方 Git 库,而用了热心网友在 Gitee 上的库…

当然,也可以使用浏览器从官网下载不同版本的 Source 文件。

3.2 对 OpenCV 源代码进行编译并安装

以使用 git 下载的源代码为例,进入 opencv 目录,创建并进入 build 目录:

cd opencv    # 进入 opencv 目录
mkdir build    # 创建 build 目录
cd build    # 进入 build 目录

然后在相应的虚拟环境下(如我前面创建了 cv_test 虚拟环境),运行如下 cmake 命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D PYTHON3_LIBRARY=`python -c 'import subprocess ; import sys ; s = subprocess.check_output("python-config --configdir", shell=True).decode("utf-8").strip() ; (M, m) = sys.version_info[:2] ; print("{}/libpython{}.{}.dylib".format(s, M, m))'` \
    -D PYTHON3_INCLUDE_DIR=`python -c 'import distutils.sysconfig as s; print(s.get_python_inc())'` \
    -D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python \
    -D BUILD_opencv_python2=OFF \
    -D BUILD_opencv_python3=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D BUILD_EXAMPLES=ON ..

经过自动运行后, 终端将显示 OpenCV 编译完毕。

在 macOS 上安装 OpenCV_第4张图片

运行命令安装 OpenCV:

sudo make install

一段时间后,显示安装完成:

在 macOS 上安装 OpenCV_第5张图片

4. 将 OpenCV 4 链接到虚拟环境

下面创建所谓的 “符号链接(symbolic link)”,将我们 cv_test 虚拟环境的 site-packages 连接到我们系统的 site-packages,这是 OpenCV 安装的位置。

首先,确定虚拟环境中的 Python 的版本(使用 python --version 命令,这里以 Python 3.7 为例),并寻找对应的 cv2.cpython-37m-darwin.so 的位置。

比如我电脑中该文件的位置是:

/usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.cpython-37m-darwin.so

下面需要将该文件链接到 cv_test 虚拟环境中:

cd ~/.virtualenvs/cv_test/lib/python3.7/site-packages   # 进入到虚拟环境相应的目录下
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.cpython-37m-darwin.so cv2.so # 链接文件

5. 验证安装情况

cv_test 虚拟环境下,输入 python3 进入 Python 环境,并使用 import cv2 导入 OpenCV,使用 cv.__version__ 显示 OpenCV 版本:

import cv2
cv.__version__

下图显示已安装配置完成了 OpenCV:

在 macOS 上安装 OpenCV_第6张图片

6. 总结

使用源码编译的方式在 macOS 上安装 OpenCV,步骤较为复杂,部分内容因个人电脑配置而不同,欢迎各位在评论区讨论碰到的困难。


  1. 关于 Git 介绍,可以参考该网站。当然,本文只用到了 Git 最最简单的操作。 ↩︎

你可能感兴趣的:(Python学习笔记,OpenCV,学习笔记,python,macos)