opencv安裝
因工程需要,想在python中調用opencv
import cv2
現在記錄一下如何在Linux系統(ubutun)下安裝該模塊:
參考了一篇博客:http://blog.csdn.net/tengxing007/article/details/54380732
在自己的電腦上安裝成功,現記錄一下安裝過程:
step1:
去opencv官網現在zip包:
https://opencv.org/opencv-3-3.html
下載后unzip解壓
step2:
cd到解壓后的目錄下,在該目錄下mkdir build目錄,然后cd build
step3:
安裝opencv需要依賴很多其他的模塊:
例如
sudo apt-get -y install build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils...
根據自己之前已經安裝過的模塊,選擇沒有裝過的進行安裝。
step4:
#編譯
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
編譯的過程中可能會報一些模塊沒有找到,需要針對性的安裝。
注:紅色標記的路徑很重要,可以使得后續裝opencv的其他版本共存。
step5:
#安裝
make -j4
sudo make install
注意事項:
1. 若系統已裝過cuda,不指定 -D WITH_CUDA=OFF
,opencv默認安裝帶GPU的opencv。
2. 安裝opencv2.4.13遇到的坑:
編譯過程中報
[..]/modules/contrib/src/rgbdodometry.cpp:65:47: fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory
解決辦法:https://answers.opencv.org/question/7666/build-failure-244-unsupportedeigenmatrixfunctions/
將rgbdodometry.cpp
第65行
include <unsupported/Eigen/MatrixFunctions>
改成
include <eigen3/unsupported/Eigen/MatrixFunctions>
/usr/bin/ld: warning: libopencv_core.so.3.4, needed by //usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_core.so.2.4
解決辦法:這顯然是兩個版本同時,鏈接時不知道找哪個.3.4是自己編譯的,2.4是系統自帶的,刪除:
sudo apt-get autoremove libopencv-dev
提醒:
以后千萬別按照別人的說明apt-get安裝libopencv-dev,一定要小心,特別是已近安裝了opencv,不然后面編譯代碼會各種鏈接不上。
4. 報錯:error: No rule to make target '/usr/lib/libOpenNI.so', needed by 'bin/euroc_rectify'。 停止。
解決方法:
這類問題的出現說明程序在編譯時,CMakeLists.txt 文件沒有找到OpenNI.so, 即 Pangolin庫未安裝或破損。
重新安裝pangolin庫即可。
遇到編譯工程時ld出現問題的總結:不要隨便opt-get install軟件,特別是自己電腦通過其他途徑已經安裝了的,不然會出現各種連接出錯!!!!
5. python2.7 import cv 報找不到模塊的問題
出現“No module named cv2”,原因就是python找不到cv2.so文件,我們進入路徑/usr/local/lib/python2.7中發現有兩個文件夾,
一個是dist-package,一個是site-package,python默認只在前者里搜索,而我們生成的cv2.so文件則在我們的安裝目錄"../../opencv3.3.0/build"中
(還記得這個目錄吧,就是我們安裝opencv過程中建的那個目錄),我們只需要簡單的將它移動到dist-package文件夾即可。
后續有更好的解決方法再更新
opencv卸載
找到當初安裝 opencv3.3.1 的 build 目錄,進入 build 目錄
cd /home/***/opencv/build sudo make uninstall cd .. sudo rm -r build 然后清理 /usr 中所有 opencv 相關項 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 /usr find . -name "*opencv*" | xargs sudo rm -rf cd /home/*** chmod a+x /home/***/opencv rm -r /home/***/opencv