在MacOS上源码安装OpenCV-4.0.0

2023-10-19 10:42:10 浏览数 (3)

前言

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完全指南

0 人点赞