Mac-OSX的Python3.5虛擬環境下安裝Opencv


Mac-OSX的Python3.5虛擬環境下安裝Opencv

1   關鍵詞

關鍵詞:Mac,OSX,Python3.5,Virtualenv,Opencv

2   概述

本文是一篇 環境搭建 的基礎文。

為了這個東西讓自己折騰了接近2天的時間,各種篩選資料,各種嘗試,最后終於找到了相應的資料,然后成功安裝。

在整理本文的時候,特別感謝這個作者,他提供了兩篇安裝opencv的方法,分別是 python2.x [1] 和 python3.x [2] 。

筆者按照 3.x 的步驟和線索,再解決掉一些文中未的提及的中間問題,最后終於成功安裝。

由於主要步驟和原文沒有太大出入,所以本文純粹是原文的中文布道版吧。

本文適合讀者群:

  • MaxOSX用戶
  • Python用戶
  • 使用OpenCV進行圖片處理的用戶

3   安裝步驟

  1. Mac OSX

    蘋果OSX操作系統

  2. HomeBrew

    軟件庫安裝命令行

  3. python3.5

  4. virtualenv

    虛擬環境

  5. pip安裝Numpy

  6. 安裝Xcode

    直接從AppStore里面下載安裝

  7. opencv3

除去最后一條的所有先決條件,由於比較簡單而且中文資料豐富,本文就假設用戶已經全部順利完成了。本文的重點是最后的 opencv3 的部分。

注意:

  • 本文建立的基於python3.5的虛擬環境目錄為 ~/py3venv/ ,在后續的編譯階段配置里面會用到。
  • 由於本文會涉及到很多在線安裝部分,所以請讀者先具備科學上網的技能

4   Opencv下載

由於opencv官方提供的是源碼,所以需要用戶下載下來並進行相應平台的編譯。主要需要下載兩個相關的倉庫:

  • opencv.git

    opencv核心庫

  • opencv_contrib.git

    opencv擴展模塊

注意:

  • 必須兩個都下載,因為后面的配置里面會用到的

  • 全部都切換到統一版本:3.0.0

    截至7月13日,最新tag號:3.0.1,但是本文並沒有試驗成功,而3.0.0是成功的

以下是相關的命令行。

下載 opencv.git 倉庫 [2] :

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

下載 opencv_contrib.git 倉庫 [2] :

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

注意:

  • 下載目錄都在用戶文件的根目錄 ~
  • 此路徑信息會在后續的編譯配置里面用到

5   Opencv編譯

在下載下來的opencv目錄下面新建build目錄 [2] :

$ cd ~/opencv
$ mkdir build
$ cd build

在build目錄下面執行 cmake 命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_PACKAGES_PATH=~/py3venv/lib/python3.5/site-packages \
-D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib \
-D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/include/python3.5m \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..

注意:

  • 這是MaOSX下python3.5虛擬環境的配置
  • 請認真對照每個路徑在本電腦上是否正確
  • 本文對比參考資料進行了如下修改:INSTALL_C_EXAMPLES設置為OFF
  • 在續行符號后面另起的行前面都有 -D
  • 命令最后面的 .. 符號並不是省略號,而是命令行的一部分

在執行命令后,檢查在shell中輸出信息,以確認是否成功編譯。

查看build列表 To be built 包含 python3 信息:

--   OpenCV modules:
--     To be built:                 hal core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab python3
--     Disabled:                    world
--     Disabled by dependency:      -

查看和 python3.5 相關聯的設置信息:

--   Python 3:
--     Interpreter:                 /Users/harmo/py3venv/bin/python3 (ver 3.5.1)
--     Libraries:                   /usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/libpython3.5m.dylib (ver 3.5.1)
--     numpy:                       /Users/harmo/py3venv/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)
--     packages path:               /Users/harmo/py3venv/lib/python3.5/site-packages

查看shell輸出的結尾成功信息:

-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/harmo/Downloads/opencv/build

如果cmake成功,在build目錄會生成一系列文件:

(py3venv) ➜  build git:(c12243c) ✗ ls
3rdparty                   Makefile                   bin                        doc                        opencv2
CMakeCache.txt             OpenCVConfig-version.cmake cmake_install.cmake        include                    osx
CMakeFiles                 OpenCVConfig.cmake         cmake_uninstall.cmake      junk                       samples
CPackConfig.cmake          OpenCVModules.cmake        cvconfig.h                 lib                        unix-install
CPackSourceConfig.cmake    apps                       data                       modules                    version_string.tmp

然后就可以編譯 opencv 了,執行

make -j4

說明:如果想編譯得更快速,可以修改命令中的數字 4 為你電腦的可用CPU核心數,來實現多核編譯。

編譯過程有點漫長,但好在shell中會有進度條提示,耐心等待幾分鍾即可。

6   編譯常見問題

在cmake階段,可能會出現一些異常提示,在此列出。

6.1   自檢提示

在cmake的過程中,會遇到這樣的異常提示:

-- Checking for module 'gstreamer-base-1.0'
--   No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
--   No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
--   No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
--   No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
--   No package 'gstreamer-pbutils-1.0' found

可以不用理會,是否安裝成功,以前面提到的那樣的python3.5字樣為准。

6.2   ippicv文件

程序在執行到:

-- ICV: Downloading ippicv_macosx_20141027.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake:71 (file):
  file DOWNLOAD HASH mismatch

會提示下載的文件的hash值不對,然后中止執行。

參考另外一篇文章 [3] ,文中提出的解決方案如下:

需要這個文件然后覆蓋過去。

wget http://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/o/op/opencvlibrary/3rdparty/ippicv/ippicv_macosx_20141027.tgz

將自己下載 ippicv_macosx_20141027.tgz 復制到 ~/opencv/3rdparty/ippicv/downloads/macosx-9662fe0694a67e59491a0dcc82fa26e0/ippicv_macosx_20141027.tgz 替換到舊的文件。

7   Opencv安裝

如果在前面步驟中,成功編譯,就可以開始安裝了:

make install

如果提示權限問題,請執行:

sudo make install

如果沒有任何問題,那么恭喜安裝成功。

8   驗證檢查

在成功安裝opencv后,需要進行一次 驗證檢查 操作。

檢查虛擬環境 py3venv 中是否存在文件 cv2.so :

(py3venv) ➜  py3venv pwd
/Users/harmo/py3venv
(py3venv) ➜  py3venv cd lib/python3.5/site-packages
(py3venv) ➜  site-packages ls -l|grep cv
-rwxr-xr-x    1 harmo  staff  2021204  7  7 18:11 cv2.cpython-35m-darwin.so
lrwxr-xr-x    1 harmo  staff       68  7  6 18:50 cv2.so -> /usr/local/Cellar/opencv3/3.1.0_3/lib/python2.7/site-packages/cv2.so

在 python3.5 中使用 opencv 相應的庫文件:

(py3venv) ➜  site-packages python
Python 3.5.1 (default, Jan 22 2016, 08:54:32)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0'
>>>

如果走到這一步,最后恭喜你,你成功安裝了opencv了。

安裝opencv后可以做什么了?

各種圖片處理,人臉識別,移動檢測報警等等好玩的opencv的開箱即用的功能等着你去開發了,盡情享受和玩耍吧。

Enjoy it~!

9   本文小結

在完成環境搭建后,特意將正確的過程記錄下來吧。一方面讓自己今后再做類似的事情不再曲折,另外一方面也讓有相同的需求的朋友少走點彎路吧,至少不用再花費幾天的時間去查找各種資料和試錯了。

10   參考資料

查找了很多資料,最具有參考價值的就是如下幾篇,感謝原作者。

[1] Install OpenCV 3.0 and Python 2.7+ on OSX http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/
[2] (1234) Install OpenCV 3.0 and Python 3.4+ on OSX http://www.pyimagesearch.com/2015/06/29/install-opencv-3-0-and-python-3-4-on-osx/
[3] ippicv_macosx_20141027.tgz問題 http://blog.csdn.net/alanzjl/article/details/47294751

作者: Harmo哈莫
作者介紹: https://zhengwh.github.io
技術博客: http://www.cnblogs.com/beer
Email: dreamzsm@gmail.com
QQ: 1295351490
時間: 2016-02
版權聲明: 歡迎以學習交流為目的讀者隨意轉載,但是請 【注明出處】
支持本文: 如果文章對您有啟發,可以點擊博客右下角的按鈕進行 【推薦】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM