前言
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中安装即可。
之后一次执行这两个命令:
代码语言:javascript复制$ 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。
代码语言:javascript复制pip install numpy
如果不确认是否安装好可以在之后的cmake生成的config信息中查看是否正确找到。
其他依赖包
OpenCV的源码安装还需要一些其他的工具,怎么安装,我们使用MacOS下必备的安装工具brew
,类似于Ubuntu中的apt-get
、centos中的yum
,就是一个包的管理工具。
依次执行以下命令:
代码语言:javascript复制$ /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安装后,我们执行以下的命令:
代码语言:javascript复制$ brew install cmake pkg-config
$ brew install jpeg libpng libtiff openexr
$ brew install eigen tbb
这样依赖包也就安装完毕,开始编译吧。
编译
解压我们之前安装好的源码包,然后进入源码目录:
代码语言:javascript复制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包):
代码语言:javascript复制...
[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信息之后,我们依次执行:
代码语言:javascript复制make -j4 # 这里我是4线程 cpu不同线程不同
sudo make install
如果不出问题的话,就算安装完毕了。
测试
安装后当然要测试一下OpenCV是否安装正确,具体测试可以查看这篇文章:Ubuntu下源码安装Opencv完全指南