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 安裝步驟
-
- Mac OSX
-
蘋果OSX操作系統
-
- HomeBrew
-
軟件庫安裝命令行
-
python3.5
-
- virtualenv
-
虛擬環境
-
pip安裝Numpy
-
- 安裝Xcode
-
直接從AppStore里面下載安裝
-
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] | (1, 2, 3, 4) 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 |
版權聲明: | 歡迎以學習交流為目的讀者隨意轉載,但是請 【注明出處】 |
支持本文: | 如果文章對您有啟發,可以點擊博客右下角的按鈕進行 【推薦】 |