OpenCV MacOS源碼安裝

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

正常的步驟:

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

mkdir release

cd release

cmake -D BUILD_TESTS=OFF ..

make -j8

sudo make install

使用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的世界盡情暢遊吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章