美文网首页 移动 前端 Python Android Java
MacOS+Python3.6下安装OpenCV3.2.0

MacOS+Python3.6下安装OpenCV3.2.0

作者: deBroglie | 来源:发表于2017-06-26 15:22 被阅读0次

    一、本机环境说明

    当前各项版本为:

    系统和软件 版本号
    macOS Sierra v10.12.5
    Python3 v3.6.1
    OpenCV(待安装) v3.2.0

    其他要求:XcodeHomebrew

    二、安装虚拟环境工具virtualenvwrapper(可选)

    $ pip3 install virtualenv virtualenvwrapper
    

    更新~/.bash_profile

    # Virtualenv/VirtualenvWrapper
    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh
    

    重新加载.bash_profile

    $ source ~/.bash_profile
    

    创建cv3虚拟环境用来编译OpenCV(注意这里使用-p python3参数来确保Python3使用):

    $ mkvirtualenv cv3 -p python3
    

    随后将进入cv3虚拟环境中。之后无论什么时候再次希望进入这个虚拟环境,执行命令:

    $ workon cv3
    

    三、安装OpenCV的依赖包

    在该虚拟环境下,安装Numpypip也将智能匹配适合此环境下的依赖包,因此无需pip3):

    $ pip install numpy
    

    为了从源文件编译OpenCV,读取各种格式的图片,以及OpenCV自身优化依赖需要安装以下包:

    $ brew install cmake pkg-config
    $ brew install jpeg libpng libtiff openexr
    $ brew install eigen tbb
    

    四、编译OpenCV

    git基本模块

    $ cd ~
    $ git clone https://github.com/Itseez/opencv.git
    $ cd opencv
    $ git checkout 3.2.0
    

    git扩展模块(需要确保与基本模块版本匹配)

    $ cd ~
    $ git clone https://github.com/Itseez/opencv_contrib
    $ cd opencv_contrib
    $ git checkout 3.2.0
    

    现在所需文件已经存在于本地目录中,创建build文件夹:

    $ cd ~/opencv
    $ mkdir build
    $ cd build
    

    cmake进行配置(创建Makefile)(注意这里有许多的3.6,这些部分表明是版本依赖的,如果编译其他版本需要进行相应修改,还有记住如果不是在虚拟环境下安装的话相应的参数也要修改):

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D PYTHON3_PACKAGES_PATH=~/.virtualenvs/cv3/lib/python3.6/site-packages \
          -D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6m.dylib \
          -D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/include/python3.6m \
          -D INSTALL_C_EXAMPLES=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D BUILD_EXAMPLES=ON -D BUILD_opencv_python3=ON \
          -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
    

    在CMake输出中找到以下段落,如果To be built中包括python3(一般在最后)

    --  OpenCV modules:
    --    To be built:                core flann imgproc ml photo reg surface_matching video dnn fuzzy imgcodecs shape videoio highgui objdetect plot superres ts xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo tracking videostab xfeatures2d ximgproc aruco optflow phase_unwrapping stitching structured_light python3
    

    并且可以在输出中找到以下段落(注意各个3.6版本的正确依赖)

    --  Python 3:
    --    Interpreter:                /Users/yitao/.virtualenvs/cv3/bin/python3 (ver 3.6.1)
    --    Libraries:                  /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6m.dylib (ver 3.6.1)
    --    numpy:                      /Users/yitao/.virtualenvs/cv3/lib/python3.6/site-packages/numpy/core/include (ver 1.13.0)
    --    packages path:              /Users/yitao/.virtualenvs/cv3/lib/python3.6/site-packages
    

    说明到目前为止一切很顺利,如果有问题,参看参考资料Step 6
    在没有任何报错的情况下,我们就可以用make编译了!(-j4与系统的内核数有关,不是必需的)

    $ make -j4
    

    经过一阵漫长的等待(不到半个小时),如果整个过程都没有报错,就可以安装啦(尽管我没有遇到什么问题,但是如果有问题的话,用sudo即可)!

    $ make install
    

    至此,已经完成OpenCV的安装了。

    五、检查安装是否成功

    在Python3的site-packages目录下查看是否存在文件cv2.so

    $ cd ~/.virtualenvs/cv3/lib/python3.6/site-packages/
    $ ls -l cv2.so
    

    如果不存在(很不幸,我的就不存在,这好像是Python3.5+版本的通病),将cv2.cpython-36m-darwin.so文件重命名为cv2.so,更推荐保留原文件做备份:

    $ cp cv2.cpython-36m-darwin.so cv2.so
    

    最后尝试打开python3的console,来看看能否顺利导入

    (cv3) YideMacBook-Pro:site-packages yitao$ python3
    Python 3.6.1 (default, Apr  4 2017, 09:40:21)
    [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cv2
    >>> cv2.__version__
    '3.2.0'
    

    成功啦!!

    相关文章

      网友评论

        本文标题:MacOS+Python3.6下安装OpenCV3.2.0

        本文链接:https://www.haomeiwen.com/subject/bshjcxtx.html