OpenCV MacOS源碼安裝

在Mac上折騰了一天的OpenCV源碼安裝,記錄一下備忘python

正常的步驟:c++

按照說明文檔,下載源碼,解壓,進入目錄bash

mkdir releasepython2.7

cd releasegoogle

cmake -D BUILD_TESTS=OFF ..spa

make -j8命令行

sudo make installci

使用cmake生成配置文件的時候能夠看一下log,一些依賴包相似libjpeg,libpng等等最好先安裝上,最簡單的方法就是使用MacPorts來安裝,方便管理,之後卸載也容易文檔

看起來過程很簡單,可是裝完了以後。。。c++很好使,可是python功能使用不了源碼

查看了一下,編譯python支持的開關變量爲BUILD_NEW_PYTHON_SUPPORT=ON,默認爲開啓的,應該沒有什麼問題,上網搜了一下緣由,原來是要把cv2.so的路徑加入到PYTHONPATH,默認狀況下cv2.so文件被安裝在/usr/local/lib/python2.7/site-packages,這個值是CMakeCache.txt文件中定義的CMAKE_INSTALL_PREFIX和PYTHON_PACKAGES_PATH這兩個變量定義的,具體可查看CMakeCache.txt文件,固然這個值可隨意修改,建議保留默認。

在/etc/profile或者~/.bash_profile文件中設置PYTHONPATH環境變量:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

因而進入python交互式命令行,導入cv2,能導入,可是出現segmentation fault異常。。。額。。鬱悶。。

繼續google,找到緣由,大概意思是python的環境配置得有問題

在CMakeCache.txt文件中,有兩個變量會影響到python模塊的編譯,分別爲PYTHON_INCLUDE_DIR和PYTHON_LIBRARY

其中PYTHON_LIBRARY指向你libpython2.7.dylib路徑,通常爲/usr/lib/libpython2.7.dylib(版本號可變化),具體路徑適你的python安裝狀況而定,PYTHON_INCLUDE_DIR指向你的python安裝路徑的include目錄,例如我用macports安裝的python2.7,這個路徑爲/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7

這兩個變量必須正確設置才能正常使用cv2.so的功能,能夠直接修改CMakeCache.txt的內容,或者在CMakeCache.txt文件目錄下使用命令 'ccmake .',就可交互式編輯。

原本opencv會自動設置這兩個變量,通常狀況下不須要本身設置,不會出錯,可是個人Mac上安裝了不少版本的python,系統自帶的,macports安裝的。。。。各類混亂,搞了半天,一氣之下,我把系統自帶的python庫,運行文件,安裝文件都刪了,只留下了macports,而後正確設置了編譯變量,再編譯,安裝,使用cv2模塊,正常,哈哈

開始進入opencv的世界盡情暢遊吧!

相關文章
相關標籤/搜索