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

    本篇文章采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可
    转载请务必注明来源: https://oldpan.me/archives/macos-source-code-opencv-4-0-0    关注Oldpan博客微信公众号,你最需要的及时推送给你。

    如果你喜欢我的内容,欢迎关注和支持~

    -------这是人工分割线-------
    联系我请关注公众号哦
    关注 oldpan博客 不错过老潘的最新文章。公众号回复"666"获取老潘的宝藏资料(C++、CUDA、Python、深度学习、算法),希望与你交朋友~

  • 标签聚合

    深度学习那些事-云+社区 腾讯云 深度学习那些事-知乎专栏 深度学习那些事-掘金专栏 CSDN-Oldpan博客 深度学习(DeepLearning)专栏 Pytorch深度学习框架专栏
  • zzz: “博主您好,我用unet训练的模型trac…10月 21, 14:34
  • Tony Kan: “名称:Tony Blog 描述:Tony…8月 12, 13:34
  • 水无垠: “写的很真实,对于一个不是专业计算机方向的…7月 13, 09:58
  • 上海网站建设: “感谢分享7月 12, 08:52
  • qingsi: “现在本地debug笔记本有什么合适的吗7月 3, 14:22
  • webber: “什么更新将pytorch量化后的模型转换…4月 11, 13:50
  •