Linux下opencv配置及多版本切換講解,linuxopencv
Linux下opencv配置及多版本切換講解
anaconda安裝opencv,配置caffe:conda install --channel https://conda.anaconda.org/menpo opencv3 將會安裝2.XX和3.XX版本import cv2print cv2.__version__可查看opencv版本ctrl+D退出終端的import環境pycharm用caffe:import syssys.path.append('/home/hpc/caffe/python') #添加caffe根目錄下的python路徑,按照自己的路徑變更import caffeprotoc --version #查看protobuf安裝版本編譯opencv:use `pkg-config` to specify OpenCV library paths??一般使用$ mkdir build$ cd build//進入目錄,防止汙染,建立build檔案$ cmake .. // .. 表示CMakeLists.txt檔案在build的上一層目錄, cmake 產生makefile檔案(用cmake命令對相關 的變數值進行配置)$ make //編譯、連結、產生可執行檔等編譯官網正常版本:會產生python介面的opencvcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON WITH_QT=ON ..編譯帶contrib版本:注意根據錯誤模組設定了WITH_MATLAB=OFF,如果看不出來,可以去cmake-gui產生makefile檔案;沒編譯Python版本,系統預設用的是內建Python,用anaconda安裝帶contrib模組,則用cmake-gui比較好!一項項配置比較好!$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3_contrib -D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/opencv3-contrib/opencv/opencv_contrib/modules/ -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_MATLAB=OFF -D BUILD_EXAMPLES=ON -D WITH_QT=ON ..$ sudo make$ sudo make install重要:cmake中的..即代表在目前的目錄編譯而所需的 CMakeLists.txt!!!其中編譯類型(DEBUG/RELEASE),對相關語言、環境的支援(如QT,Python)其中產生的檔案在bulid中,而產生的CMakeList.txt檔案在上一級檔案中;其中-D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/opencv3_contrib/opencv/opencv_contrib/modules/ 是指將要install的路徑,一般預設為 /usr/local,這裡是指定的opencv的安裝路徑;其中 -D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/libo_opencv3/opencv_contrib/modules/ 是指 opencv_contrib中 modules 所在的路徑,最後面的兩點不可省略;opencv安裝測試及版本查看:pkg-config --modversion opencv 查看opencv安裝的版本import cv2 && print(cv2.__version__)驗證anaconda2/Python串連的opencv版本opencv多版本切換:過修改.bashrc檔案來設定PKG_ CONFIG_PATH 和 LD_LIBRARY_PATH的路徑來選擇對應的opencv版本,如:export PKG_CONFIG_PATH=/usr/local/opencv/3.10/lib/pkgconfig export LD_LIBRARY_PATH=/usr/local/opencv/3.10/lib 具體還是要在CMakeList.txt中指定要找的opencv的目錄clion等平台配置CmakeLists.txt,切換多版本的方法:set(OpenCV_DIR /usr/local/opencv3_contrib/share/OpenCV)#因為每一個安裝的opencv都帶有share檔案夾,find_package可自動找到對應的庫opencv對應的include和lib等檔案,預設下是去/usr/local/share下的OpenCV中尋找cmake指令碼命令find_package(OpenCV REQUIRED)卸載opencv:cd /home/sunlibo/opencv/buildmake uninstall//卸載掉配置路徑中的檔案sudo rm -r build//刪除build檔案//刪除掉環境中有關的其餘包sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*cd /home/sunlibochmod a+x opencv//給opencv許可權rm -rf opencv//r為遞迴刪除,f為強制移除。如果刪除還是有檔案許可權不夠,可以繼續給相應檔案許可權,chomd a+x 檔案名稱