前言
OpenCV-4.0.0已经放出来一阵日子了,很有新功能新特性值得尝试,由于MacOS上的brewhome
包中编译好的OpenCV版本只有3.4.3,为了在MacOS上安装最新的OpenCV,只好走源码编译这条路了。
安装细节
整体来说比较简单,这里我并不选择安装OpenCV的contribute部分,所以我仅仅下载了官方的标准源码包:https://github.com/opencv/opencv/releases
下载好找个文件夹解压即可。
依赖包
安装OpenCV当然要安装一些必要的依赖件,我们需要:
- gcc、make、cmake、clang
- python3
- 其他一些其他的依赖包
编译工具
在MacOS端的话,编译器我们可以选择xcode自带的编译器,首先我们要安装xcode工具包,直接在App Store中安装即可。
之后一次执行这两个命令:
$ sudo xcodebuild -license $ sudo xcode-select --install
安装好这些后系统中应该已经有make、gcc、clang等命令了。
python
python不用多说吧,安装方式很多,可以走官方安装包安装或者利用anaconda
工具进行安装,总之安装好python3版本的就可以了,建议安装3.6版本。
这里推荐anaconda,然后将anaconda的python设置为系统python(可以安装在系统环境中,也可以安装在虚拟环境中),在编译opencv的时候会自动寻找当前python路径。
相关文章:anaconda常用命令配置信息及更换源。
在安装好python之后,安装numpy。
pip install numpy
如果不确认是否安装好可以在之后的cmake生成的config信息中查看是否正确找到。
其他依赖包
OpenCV的源码安装还需要一些其他的工具,怎么安装,我们使用MacOS下必备的安装工具brew
,类似于Ubuntu中的apt-get
、centos中的yum
,就是一个包的管理工具。
依次执行以下命令:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew update $ nano ~/.bash_profile # 在打开的文件中添加: # Homebrew export PATH=/usr/local/bin:$PATH $ source ~/.bash_profile
brew安装后,我们执行以下的命令:
$ brew install cmake pkg-config $ brew install jpeg libpng libtiff openexr $ brew install eigen tbb
这样依赖包也就安装完毕,开始编译吧。
编译
解压我们之前安装好的源码包,然后进入源码目录:
oldpandeMacBook-Pro:opencv-4.0.0 oldpan$ oldpandeMacBook-Pro:opencv-4.0.0 oldpan$ mkdir build oldpandeMacBook-Pro:opencv-4.0.0 oldpan$ cd build oldpandeMacBook-Pro:build oldpan$ $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_opencv_python2=OFF \ -D BUILD_opencv_python3=ON ..
这里我不进行python2.7的链接,只进行了python3版本的链接,然后产生了cmake的config信息,从信息中我们可以看出cmake是否找到了合适的依赖包以及其他环境(以下显示python3版本正确找到了,还有numpy包):
... [cmake] General configuration for OpenCV 4.0.0 ... [cmake] Eigen: YES (ver 3.3.5) [cmake] Custom HAL: NO [cmake] Protobuf: build (3.5.1) [cmake] OpenCL: YES (no extra features) [cmake] Include path: NO [cmake] Link libraries: -framework OpenCL [cmake] Python 3: [cmake] Interpreter: /Users/oldpan/anaconda/bin/python (ver 3.6.1) [cmake] Libraries: /Users/oldpan/anaconda/lib/libpython3.6m.dylib (ver 3.6.1) [cmake] numpy: /Users/oldpan/anaconda/lib/python3.6/site-packages/numpy/core/include (ver 1.15.4) [cmake] packages path: lib/python3.6/site-packages [cmake] Python (for build): /usr/bin/python2.7 [cmake] Java: [cmake] ant: NO [cmake] JNI: /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers [cmake] Java wrappers: NO [cmake] Java tests: NO [cmake] Install to: /usr/local [cmake] ----------------------------------------------------------------- [cmake] Configuring done [cmake] Generating done
在观察完cmake的config信息之后,我们依次执行:
make -j4 # 这里我是4线程 cpu不同线程不同 sudo make install
如果不出问题的话,就算安装完毕了。
测试
安装后当然要测试一下OpenCV是否安装正确,具体测试可以查看这篇文章:Ubuntu下源码安装Opencv完全指南