在 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,需要首先安装 Xcode 和 Homebrew,之后建立 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
点击 “安装(Install)” 按钮,即可安装完成,就具备了 make
,gcc
,clang
等编译器工具。
2.安装 Homebrew 及依赖包
2.1 安装 Homebrew
Homebrew 的官方解释是: macOS(或 Linux)缺失的软件包的管理器,可以用于安装非预装的软件包。
由于种种原因,国内的同学无法直接通过官方渠道安装 Homebrew,有网友自己建立了中文的安装脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
按照中文指示,选择安装源即可完成安装:
另外,卸载 Homebrew 的命令是:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
安装完成后,可以使用下面的命令进行升级:
brew update
然后对 macOS 的环境变量文件(bash_profile
)进行修改,可以使用 vim
,nano
,emacs
的不同的编辑器进行修改:
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
工具,便于从 GitHub 或 Gitee 等网站直接下载1:
brew install git
2.3 安装 pip 并配置虚拟环境
可以参考我之前写的 这篇文章 中有关安装 pip
并配置 Python 虚拟环境的相关内容。
同时,如果使用国内镜像较慢时,可以考虑 将 pip 使用的源修改为国内的镜像源。
使用下面命令设置虚拟环境 cv_test
:
mkvirtualenv cv_test -p python3
通过 workon cv_tset
命令进入虚拟环境:
同时,在这个虚拟环境下安装 Numpy:
pip install numpy
3. 下载并编译 OpenCV 4
相比使用 pip,Homebrew 和 Anaconda 等工具,对 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 编译完毕。
运行命令安装 OpenCV:
sudo make install
一段时间后,显示安装完成:
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:
6. 总结
使用源码编译的方式在 macOS 上安装 OpenCV,步骤较为复杂,部分内容因个人电脑配置而不同,欢迎各位在评论区讨论碰到的困难。
关于 Git 介绍,可以参考该网站。当然,本文只用到了 Git 最最简单的操作。 ↩︎
在 macOS 上安装 OpenCV相关推荐
- OpenCV Java入门一 在MAC系统上安装OpenCV
OpenCV网上讲的一个都不对,要么卡死电脑,要么训练模型写死,要么都只是显示显示人脸就说入门了.没有一个从安装.使用.驱动摄像头.训练模型.辩别人脸的全过程.最夸张的是连怎么安装个OpenCV的资料 ...
- opencv 安装_如何在 CentOS 8 上安装 OpenCV
本文最先发表在: 如何在 CentOS 8 上安装 OpenCVwww.itcoder.tech OpenCV(Open Source Computer Vision Library) 是一个开源的 ...
- qtiplot编译失败linux,在macOS上安装 qtiplot 免费版
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 最近更新时间:2019-10-04 一.简介 众所周知,对于广大科研狗来说,origin是一款不可多得的使用软件,但or ...
- MacOS中安装OpenCV
MacOS中安装OpenCV MacOS中安装OpenCV 所需的包 安装CMake 获取OpenCV源代码 获取最新的稳定OpenCV版本 从Git存储库中获取最新的OpenCV 使用CMake从源 ...
- 在windows上安装OpenCV
在windows上安装OpenCV,官方提供的教程,我翻译了一下.如有不正解,请指正 使用git-bash(版本> = 2.14.1)和cmake(版本> = 3.9.1)安装 1.您必须 ...
- macos 安装scala_如何在MacOS上安装Scala和Apache Spark
macos 安装scala by Jose Marcial Portilla 通过何塞·马西尔·波蒂利亚(Jose Marcial Portilla) 如何在MacOS上安装Scala和Apache ...
- macos安装python3.6_在CentOS 7/Ubuntu 16.04/Debian 9/macOS上安装Python 3.6的方法
本文介绍在CentOS 7/Ubuntu 16.04/Debian 9/macOS操作系统上安装Python 3.6的方法,包括使用Python 3.6创建virtualenv,目前大多数Linux发 ...
- 如何在Ubuntu 18.04上安装OpenCV
本教程介绍了如何在Ubuntu 18.04上安装OpenCV. OpenCV(开源计算机视觉库)是一个开源计算机视觉库,具有C ++,Python和Java的绑定.它的用途非常广泛,包括医学图像分析, ...
- 在MacOS上安装MacTex
现在,TeX\TeXTEX已经成为科研人员撰写科技论文的神器之一.在易用性和美观方面,Mac亦是众多科技工作者选择之一.在Mac上,我们通常会使用与TexIive同源的MacTex编写TeX\TeX ...
最新文章
- “Jupyter的杀手”:Netflix发布新开发工具Polynote
- mysql省市县三级互动_mysql+ajax的省市县三级联动
- sql中索引不会被用到的几种情况
- spring mvc学习(32):原生代码导入
- mysql 启动_mysql安装、启动
- c/c++ 基金会(七) 功能覆盖,虚函数,纯虚函数控制
- oracle 多表视图更新
- 按3倍中误差去除粗差(C++)
- 杭电数字电路课程设计——出租车计费器
- html中三角函数表示什么,三角函数a怎么求
- 技术领导力 程序员如何才能带团队 文摘 (一)
- 计算机音乐专业考研,武汉音乐学院2021年硕士研究生招生考试《计算机音乐作曲》考试大纲...
- 团队成员筛选的核心秘档:三否三拒三不动
- PaddleNLP_基于seq2seq的对联生成
- Android原生OS风格ROM包,小米5S 的LineageOS14.1刷机包 安卓7.1.1原生风格 20180203更新...
- python onenet_onenet简介
- 动漫推荐之恋爱随意链接
- JS和node.js的区别
- Java操作数据库方式五MyBatis使用入门
- web连接蓝牙电子秤navigator.bluetooth
热门文章
- 报org.apache.ibatis.binding.BindingException: Type interface com.olx.service.UserMapper is not known
- 中华PDF开天裁决传奇这个该死的东西怎么删除?
- 如何安装与卸载NAS应用程序
- 个推 php ios,消息推送API
- 抖音落地页跳转添加微信好友的方法
- acm中的一些博弈论知识
- MTK Camera驱动移植
- 网易有道 | REDIS 云原生实战
- 井蛙不可以语于海者,拘于虚也;夏虫不可以语于冰者,笃于时也
- 0成本下载毕业论文——知网等N多资源