Ubuntu16.04+OpenCV3.2.0+Opencv_Contrib3.2.0安裝


為了學習slam,在ubuntu16.04系統上安裝opencv3.2.0以及對應的opencv_contrib3.2.0

安裝過程


下載

Github上下載有的時候比較慢,我這里分享了OpenCV3.2.0+OpenCV_contrib3.2.0的下載鏈接(包括一些編譯過程中需要下載的文件)
鏈接:Download 提取碼:8jaw

安裝opencv依賴庫

$ sudo apt-get install build-essential

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev

$ sudo apt-get -install libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev 

事實上,OpenCV的依賴庫很多,缺失某些項編譯的時候會出錯或者影響某些功能。OpenCV會在cmake的時候檢查依賴項是否安裝,如果出錯,按照提示安裝依賴項即可。

解壓opencv-3.2.0文件

$ unzip opencv-3.2.0.zip     //我這里當前文件路徑為 /Downloads

解壓opencv_contrib-3.2.0.tar.gz

$ tar -zxvf opencv_contrib-3.2.0.tar.gz -C ./opencv-3.2.0/

編譯

$ cd opencv-3.2.0/
$ mkdir build
$ cd build

$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/ai/downloads/opencv-3.2.0/opencv_contrib-3.2.0/modules/ -D WITH_TBB=ON -D BUILD_SHARED_LIBS=OFF -D WITH_OPENMP=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF ..

安裝

$ sudo make -j8   //多線程
$ sudo make install

配置環境

$ sudo gedit /etc/ld.so.conf.d/opencv.conf

# 在最后一行添加 /usr/local/lib

$ sudo gedit /etc/bash.bashrc

# 在最后一行中添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfig  
export PKG_CONFIG_PATH

$ sudo ldconfig

$ sudo cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig


最后安裝成功

$ pkg-config --modversion opencv

遇到的問題


1. 下載ippicv_linux_20151201.tgz超時

解決方案:手動下載
如果終端下載過慢,或者出現超時。上面的下載包里有這個壓縮文件,把這個壓縮文件放入/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/夾中。(嚴格來說,是放入錯誤提示的文件路徑)

2. 缺少gtk+-3.0

No package 'gtk+-3.0' found
解決方案:

$ sudo apt-get install libgtk-3-dev

3. 缺少依賴項

--   No package 'gstreamer-base-1.0' found
 
--   No package 'gstreamer-video-1.0' found
 
--   No package 'gstreamer-app-1.0' found
 
--   No package 'gstreamer-riff-1.0' found
 
--   No package 'gstreamer-pbutils-1.0' found

解決方案:

$ sudo apt-get install libgstreamer0.10-dev
$ sudo apt-get install libgstreamer-plugins-base0.10-dev
$ sudo apt-get install libgstreamer1.0-dev 
$ sudo apt-get install libgstreamer-plugins-base1.0-dev 

$ sudo apt-get install libgstreamer1.0-dev 
$ sudo apt-get install libgstreamer-plugins-base0.10-dev
$ sudo apt-get install libgstreamer0.10-dev 
$ sudo apt-get install libgstreamer-plugins-base1.0-dev

如果下載這些依賴這些包的時候,出現無法定位軟件包,應該是系統的源的有問題,可以換其他源,我后面改用阿里的源可以成功下載依賴項。

3. 缺少libavresample、libgphoto2包

--   No package 'libavresample' found
 
--   No package 'libgphoto2' found

解決方案:

$ sudo apt-get install libavresample-dev
$  sudo apt-get install libgphoto2-dev

4. 缺少libavresample包

--   No package 'libavresample' found

解決方案:

$ sudo apt-get install libavresample-dev
$  sudo apt-get install libgphoto2-dev

5. 找不到OpenBLAS include

-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off

解決方案:

$ sudo apt-get install libopenblas-dev

6. 找不到Doxygen include

-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
解決方案:

$ sudo apt-get install doxygen

7. 找不到JNI

-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
解決方案:
詳見參考[1]

8. make的時候缺失opencv_lapack.h

解決方案:

$ sudo apt-get install liblapacke-dev checkinstall

9.提示no package opencv found

pkg-config --modversion opencv 的時候提示找不到opencv包
解決方案:
配置環境時缺少了一行代碼:

$ sudo cp /usr/local/opencv320/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig

10.出現Makefile:160: recipe for target 'all' failed

解決方案:
opencv_contrib的路徑有問題,在編譯時候最好指定opencv_contrib的文件路徑,否則會在make的時候出現makefile找不到的問題。

參考

[1] https://blog.csdn.net/weixin_41896508/article/details/80795239
[2] https://blog.csdn.net/qq_29229045/article/details/78527391


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM