--wongkai@hnu.edu.cn
所需环境:
-
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
![](https://img-blog.csdnimg.cn/img_convert/69047e0a309c55f16a8b2732286f5778.png)
![](https://img-blog.csdnimg.cn/img_convert/d3bb367f4d05270d9c6a40f9b0c5908b.png)
![](https://img-blog.csdnimg.cn/img_convert/17c8db10c6ea48b58a87ac8724a9648d.png)
![](https://img-blog.csdnimg.cn/img_convert/030a57d786af936ba634be1a89607535.png)
![](https://img-blog.csdnimg.cn/img_convert/e7bf75692a3a539157738fe3caae2a51.png)
-
建议将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脚本用于下载这些文件,戳这里:OpenCV在CMake时出现文件无法下载的解决办法(利用python自动下载脚本)_HNU跃鹿战队的博客-CSDN博客
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,参考提示操作即可。
![](https://img-blog.csdnimg.cn/img_convert/fff13b0f514a38ea0b19d32f26f19430.png)
4. Git 的安装
有多种方式安装:
-
安装Xcode 和CLT 后,无需额外安装
-
利用Homebrew 安装:
brew install git
其他方式参考:Git - Downloading Package 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)