1.安裝 opencv 所需依賴包
如果后面還要遺漏的蚕键,出錯再補上
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get -y install libopencv-dev build-essential cmake git 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 libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264v4l-utils unzip
2.下載 opencv3.2.0
這里需要下載 opencv 和 opencv_contrib (后者會在 cmake 配置的時候用到), 這是因為 opencv3以后 SIFT 和 SURF 之類的屬性被移到了 contrib 中,執(zhí)行下面兩條指令下載 OpenCV3.2.0
$ wget https://github.com/opencv/opencv/archive/3.2.0.zip
$ wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip
(3.2.0.zip就是opencv-3.2.0.zip)
(3.2.0.zip.1就是opencv_contrib.zip)
3.解壓下載的兩個文件
$ unzip opencv-3.2.0.zip -d ~/opencv
$ unzip opencv_contrib-3.2.0.zip -d ~/opencv
4.創(chuàng)建并進入 build 目錄,執(zhí)行 cmake 生成 makefile 文件
$ cd ~/opencv/opencv-3.2.0
$ mkdir build
$ cd build/
$ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH= ..
注意cmake的參數(shù)不要出錯
問題一:
下載包的時候鏈接超時
CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message):
ICV: Failed to download ICV package: ippicv_linux_20151201.tgz.
Status=28;"Timeout was reached"
手動下載 ippicv_linux_20151201.tgz(https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz)到opencv-3.2.0/3rdparty/ippicv/downloads/目錄下再cmake
$ sudo cp ~/software/opencv/ippicv_linux_20151201.tgz ~/opencv/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
問題二:
-- No package 'gtk+-3.0' found
$ sudo apt-get install libgtk-3-dev
問題三:
-- 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 -y install libgstreamer-plugins-base1.0-dev
sudo apt-get -y install libgstreamer1.0-dev
問題四:
-- No package 'libavresample' found
-- No package 'libgphoto2' found
$ sudo apt-get -y install libavresample-dev
$ sudo apt-get -y install libgphoto2-dev
問題五:
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
$ sudo apt-get install libopenblas-dev
問題六:
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
$ sudo apt-get install doxygen
問題七:
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
a.下載jdk-8u151-linux-x64.tar.gz到download目錄
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
b.安裝jdk
$ cd download/
$ sudo mkdir /usr/local/java
$ sudo tar zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java
$ sudo ln -s /usr/local/java/jdk1.8.0_151/ /usr/local/java/latest
c. 添加環(huán)境變量:
$ sudo vim /etc/profile
加入如下內(nèi)容:
>export JAVA_HOME=/usr/local/java/latest
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
執(zhí)行
$ source /etc/profile
進行更新判没。
沒有報錯的情況下硬霍,cmake成功后會出現(xiàn)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fc/opencv/opencv-
3.2.0/build
5. make
cmake成功,之后可以在 build 文件下執(zhí)行編譯指令,待編譯成功后即可執(zhí)行安裝指令垃它。
$ sudo make -j4
出錯:
/opencv/opencv-3.2.0/build/opencv_lapack.h:2:45: fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: 沒有那個文件或目錄
解決方法:
$ sudo apt-get install liblapacke-dev checkinstall
make時間有點長雅任,差不多兩個小時了笙蒙。
6.install
$ sudo make install
7.安裝 python 接口依賴
$sudo apt-get install python-opencv
sudo apt-get install python-numpy
8.測試 Python 的 OpenCV3.2.0 模塊
$ python
Python 2.7.14 |Anaconda, Inc.| (default, Oct 16 2017, 17:29:19)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>>
問題:No module named cv2
原因在于 python2.7 找不到 cv2.so 文件
$ sudo cp ~/opencv/opencv-3.2.0/build/lib/cv2.so ~/anaconda2/lib/python2.7/site-packages/
再測試:
$ python
Python 2.7.14 |Anaconda, Inc.| (default, Oct 16 2017, 17:29:19)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'
>>>
能顯示opencv的版本說明安裝成功