zoukankan      html  css  js  c++  java
  • 配置环境python和opencv基于MacOS

     小白一枚,配置python和OpenCV真的有点玄学。

    这是重要教程 macOS: Install OpenCV 3 and Python 2.7

    外国友人在我不知头绪的情况下帮了大忙,如果运气好一次就能成功,下面我就各个部分调试时可能遇到的坑进行排坑。

    我的配置macOS Sierra(10.12.3),python(2.7.13),OpenCV3.2,找个网速好的地方。

    只会用到一些初级终端命令Mac OS X Terminal 101:终端使用初级教程

    打开终端

    第一步 install Xcode

    1. 从appstore下载安装

    2. 接受苹果开发者的许可证

    sudo xcodebuild -license

    3. 安装苹果命令工具

    sudo xcode-select --install

    第二步 安装Homebrew

    1. 官网Homebrew 

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    2. 更新 

    brew update

    3. 配置环境变量

    打开nano或者vim

    nano ~/.bash_profile

    将以下代码输入nano或vim,

    # Homebrew

    export PATH=/usr/local/bin:$PATH

    接着control+o保存,control+x退出

     source ~/.bash_profile 

    第三步 通过Homebrew安装python

    1. brew install python

    教程中的brew linkapps python可能是版本更新的问题返回不成功,可以按照终端提示尝试 

    2. which python

    如果返回/usr/local/bin/python既是表明python安装成功,而如果返回/usr/bin/python即安装不成功,此时的python还是系统内置的python

    第四步 安装virtualenv,virtualenvwrapper,Numpy三大python必要包

    1. 安装virtualenv,virtualenvwrapper

     pip install virtualenv virtualenvwrapper

    同上打开nano

    nano ~/.bash_profile

    输入代码在nano中 # Virtualenv/VirtualenvWrapper

    source /usr/local/bin/virtualenvwrapper.sh

    control+o保存control+x退出

    source ~/.bash_profile

    2. 创建python虚拟环境

    mkvirtualenv c

    3. 进入虚拟环境

    workon c

    这个时候你就能看见shell左上角有你的虚拟环境的名称c,以下步骤均在虚拟环境下运行

    4. 安装numpy包

    pip install numpy

    第五步 安装opencv先决条件用Homebrew

    brew install cmake pkg-config

    brew install jpeg libpng libtiff openexr

    brew install eigen tbb

    第六步 下载OpenCV3的资源通过GitHub

    cd

    git clone https://github.com/opencv/opencv

    git clone https://github.com/opencv/opencv_contrib

    第七步 配置OpenCV3和python通过CMake

    1. 进入opencv

    cd ~/opencv

    2. 创建build文件

    mkdir build

    3. 进入build

    cd build

    4. 输入cmake指令

    cmake的标准格式跟教程不太一样,我改进了些,YYY和ZZZ是你需要获得的

    cmake -D CMAKE_BUILD_TYPE=RELEASE

    -D CMAKE_INSTALL_PREFIX=/usr/local

    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules

    -D PYTHON2_LIBRARY=YYY

    -D PYTHON_LIBRARY=$(python-config -prefix)YYY

    -D PYTHON2_INCLUDE_DIR=ZZZ

    -D PYTHON_INCLUDE_DIR=$(python-config -prefix)/include/python2.7/

    -D PYTHON2_EXECUTABLE=$VIRTUAL_ENV/bin/python

    -D BUILD_opencv_python2=ON

    -D BUILD_opencv_python3=OFF

    -D INSTALL_PYTHON_EXAMPLES=ON

    -D INSTALL_C_EXAMPLES=OFF

    -D BUILD_EXAMPLES=ON ..

    4.1 获得YYY

    ls /usr/local/Cellar/python/2.7.*/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib

    shell返回的是YYY

    4.2 获得ZZZ

    ls -d /usr/local/Cellar/python/2.7.*/Frameworks/Python.framework/Versions/2.7/include/python2.7/

    shell返回的是ZZZ

    4.3 将YYY和ZZZ输入cmake指令于shell

    如果你得到的

    Interpreter的路径在你的虚拟环境里

    Libraries的路径是上述YYY的路径

    numpy的路径在虚拟环境里

    如果正确往下进行,反之进入opencv删除build,然后重建build重新输入cmake指令

    第八步 编译和安装OpenCV

    make -j4

    如果结果无错误,即往下进行

    而我的错误是

    解决方案

    1.在文件Finder中输入/System/Library/Frameworks/Python.framework/Headers/Python.h

    查看是否存在Python.h,以上步骤不出意外会存在。

    2.同上打开nano,将下面的代码输入,并保存和退出

    export C_INCLUDE_PATH=/System/Library/Frameworks/Python.framework/Headers

    control+o保存control+x退出

    source ~/.bash_profile

    3.接着执行make -j4指令

    100%成功后

    sudo make install

    第九步 连接OpenCV和python

    cd /usr/local/lib/python2.7/site-packages/

    ls -l cv2.so

    cd ~/.virtualenvs/cv/lib/python2.7/site-packages/

    ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

    cd

    workon cv

    python

    显示图片测试代码

    1. import cv2     
    2. img = cv2.imread("***.jpg")   
    3. cv2.namedWindow("Image")   
    4. cv2.imshow("Image", img)   
    5. cv2.waitKey (0)  
    6. cv2.destroyAllWindows() 

    中途出现问题也正常,我在无头绪的时候暴力重装三次系统,祝好运。

    更新因为在对视频的处理时,都是null,所以重现装了一遍

    先uninstall opencv and python

    And follow this tutorialEasy way

  • 相关阅读:
    Java并发/多线程-线程池的使用
    pam详解
    chrony时间同步服务
    网站每日UV数据指标去重统计
    阻塞式发送邮件
    待办事项-redis
    解决Windows7、Windows10 ping不通的问题
    redis序列化和反序列化的操作-(以前咋操作我都忘记了)
    秒杀活动下的公平队列抢购机制
    控制某个字段不在页面展示
  • 原文地址:https://www.cnblogs.com/gzoof/p/6656974.html
Copyright © 2011-2022 走看看