所需环境:
- CMake 3.9 及以上
- Git
- Python 2.7 及以上
- NumPy 1.5 及以上
若没有这些环境,请到文末的环境安装教程部分查看,并将它们安装好。
注意:
OSX 默认附带Python 2.7,如果需要使用Python 3,则需要单独下载Python 3.8及以上版本;安装Xcode 和Xcode Command Line Tools 后会附带Git,无需再单独安装。
获取OpenCV 源代码
根据需要,可以选择稳定版本的OpenCV 或者最新的版本(可能不稳定)。
1. 获取稳定版本
稳定版本的源代码可从OpenCV官网的Release页面获取,选择相应版本的Sources下载后解压即可。
2. 获取最新版本
通过git克隆OpenCV的 仓库,或访问GitHub后选Download ZIP下载压缩文件后解压。
以下出现的 ~均表示你的个人目录/Users/<your_name>,在CMake中需要替换为绝对路径/Users/<you_name>;以下均以在 ~目录下建立opencv文件夹为例
打开终端(Terminal),执行下面的指令
# ~
mkdir opencv/sources
cd opencv/sources
git clone https://github.com/opencv/opencv.git
如果需要安装额外的模块,即opencv_contrib
,也要同样克隆contrib的仓库:
git clone https://github.com/opencv/opencv_contrib.git
注意:
opencv-contrib
是为OpenCV开发的“额外”模块。目前没有的稳定API且没有经过完整测试,因而不能作为官方版本的一部分一同发布。这些模块稳定后,就会被加入到OpenCV中。opencv-contri
包含的额外模块以及大概的功能(4.x),可以参看:https://github.com/opencv/opencv_contrib/blob/4.x/modules/README.md。
编译安装 OpenCV
在opencv目录下,创建build目录:
# ~/opencv
mkdir build
cd build
此时,opencv目录结构如下(你的source目录下的文件夹名可能有所不同):
. └── opencv ├── build └── source ├── opencv └── opencv_contrib
1. 生成编译文件
1.1 使用CMake GUI
- 打开cmake-gui,将source code 的目录设置为
~/opencv/source/opencv
,将build目录设置为~/opencv/build
(将~替换为你的用户目录/Users/<your_name>);
- 点击Configure,(无特殊需要)选择Unix Makefiles和默认的编译器,等待完成;
- 第一次完成后,根据需要修改相应的参数。(红色的参数代表新值)
- 如果需要安装
opencv-contrib
,修改对应的OPENCV_EXTRA_MODULES_PATH
参数为contrib包下的modules
目录,本例中为~/opencv/source/opencv_contrib/modules
;
- 如果需要安装示例,将
BUILD_EXAMPLES
的值打勾;
- 利用CMake编译,会默认安装到系统的目录中,一般是
/usr/local
。如果需要安装到指定的目录下,例如opencv/opencv_libs
,将CMAKE_INSTALL_PREFIX
的值修改为相应的目录;
- 建议将
CMAKE_BUILD_TYPE
设置为Release
; - 其他参数根据需要修改,具体参考:OpenCV: OpenCV configuration options reference
- 修改完参数后,再次点击Configure;
- 观察输出中没有红色的错误信息后,点击Generate;
注意:
在Configure的过程中,会下载一部分必要的文件,可能会出现下载错误,例如:
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
xfeatures2d/boostdesc: Download failed: 6;"Couldn't resolve host name"
For details please refer to the download log file:
~/opencv/build/CMakeDownloadLog.txt
一般这些错误是因为CMake 无法直接下载这些文件。打开
CMakeDownloaLog.txt
文件,找到相关的下载的信息:
#use_cache "~/opencv/source/opencv/.cache"
...
...
#cmake_download "~/opencv/source/opencv/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i"
#try 1
# getaddrinfo(3) failed for raw.githubusercontent.com:443
# Could not resolve host: raw.githubusercontent.com
# Closing connection 0
#
...
...
可以确定是网络问题导致了错误。尝试访问
#cmake_download
中的下载链接,例如这里是https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i。如果你能正常下载,将其拷贝到相应的目录即可,这里即:~/opencv/source/opencv/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
。如果不能下载,则需要找到相应的文件,例如别人已经下载好的文件;或切换到可以访问github的网络下,或者更改你的代理设置,之后再次尝试下载。如果失败的文件较多,可以借助脚本来下载,笔者已经写好了一个python脚本用于下载这些文件
1.2 使用CMake 命令行
使用命令行与使用GUI软件类似,只是你需要将这些参数全部转换成相应的指令。例如:
# build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON -DOPENCV_EXTRA_MODULES_PATH="../source/opencv_contrib/modules/" -DCMAKE_INSTALL_PREFIX="../opencv/opencv_libs" ../source/opencv/
出现错误的解决办法也类似于使用GUI。多为网络原因下载失败,尝试切换网络环境或手动下载好之后重新执行cmake的命令即可。
2. 编译安装
完成cmake之后,在build
目录下使用make
编译:
# build
make -j16
-j16
指的是同时执行16个任务(jobs),可以加快编译速度。根据你CPU的性能,选择合适的参数将每个核心拉满即可。
根据性能不同,编译时间大约五到十分钟。编译成功后进行安装:
# build
make install
大约需要十几秒。至此OpenCV安装完成。
注意:
编译过程中也可能会出现错误。注意检查Configure和Generate的过程中是否有报错;如果没有,再查看make的报错,寻找原因。如果你之前使用过Homebrew安装过OpenCV,可能会有相应的软件包发生冲突。例如:
... make[2]: *** No rule to make target `zlib', needed by `lib/libopencv_imgcodecs.4.5.5.dylib'. Stop. ...
此时有两种解决办法:
1.卸载Homebrew,等待编译成功后重新安装;
2.将BUILD-ZLIB参数取消打勾(
-DBUILD_ZLIB=OFF
).其他问题也多数与这样的冲突有关。
如果你的OpenCV安装到了/usr/local
目录下,一般无需配置环境变量;若你安装到自定义的目录,为了让编译器找到OpenCV,有两种办法:
- 修改环境变量
在CMakeLists设置OpenCV_DIR
为你的安装目录,例如你安装到~/opencv/opencv_libs
,按下面的方式修改:
set(OpenCV_DIR ~/opencv/opencv_libs/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
依赖环境安装
如果你知道例如Homebrew,CMake等的安装,这部分可以忽略。
1. Xcode 的安装
安装有两种方式:
- 在App Store中搜索Xcode安装;
- 访问Sign In - Apple,找到所需版本的Xcode下载安装。
2. Xcode Command Line Tools的安装
安装有两种方式:
- 在终端输入
xcode-select --install
等待安装成功即可;
- 访问访问Sign In - Apple,找到对应于Xcode版本的CLT下载安装。
3. CMake 的安装
安装有两种方式
- 利用Homebrew安装:
brew install cmake
- 访问Download | CMake,下载CMake GUI。之后若想在命令行中使用,打开CMake,点击Tools,点击How to Install For Command Line Use,参考提示操作即可。
4. Git 的安装
有多种方式安装:
- 安装Xcode 和CLT 后,无需额外安装
- 利用Homebrew 安装:
brew install git
其他方式参考:Git - Downloading Package 。