在安装opencv3.2.0的过程中,我遇到了好多坑,特此记录一下。建议安装了Anaconda的朋友们找一找网上的方法,直接利用它进行安装,可以避免很多坑。
下面结合参考的网上的教程,说一说我的安装过程和解决办法。
一、准备工作
提前下载好三个文件,https://github.com/hanxuan123/opencv3.2/tree/master/all,这里给出网上分享的一个链接(感谢)。包括opencv-3.2.0、ippicv_linux_20151201.tgz、opencv_contrib-3.2.0
二、安装依赖文件
这里每个人需要装的文件可能不同,我是根据https://blog.csdn.net/yifa3588/article/details/78284794这篇博客中给的依赖文件先安装的,之后再根据CMake的报告添加缺少的依赖文件
在终端输入
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
三、编译
3.1
首先将第一步中下载好的opencv-3.2.0解压到一个新的文件夹中,我的新文件夹命名为opencv3,opencv_contrib-3.2解压到opencv-3.2.0中,再在opencv-3.2.0中新建一个文件夹,命名为build,并在该文件下编译。
3.2
cd /home/software/opencv3/opencv-3.2.0/build #这里根据自己的路径调整
3.3
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/software/opencv3/opencv-3.2.0/opencv_contrib-3.2.0/modules/ .. #这里根据自己的路径调整, 注意最后的两个点
注意:这是重要的一步,这一步可能会出现各种各样的问题,要根据所遇到的问题,对症下药~在此附上我遇到的一些问题和解决办法,仅供参考。
...
Checking for module 'gstreamer-base-1.0'
-- No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
-- No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
-- No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
-- No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
-- No package 'gstreamer-pbutils-1.0' found
-- Checking for module 'gstreamer-base-0.10'
-- Found gstreamer-base-0.10, version 0.10.36
-- Checking for module 'gstreamer-video-0.10'
-- No package 'gstreamer-video-0.10' found
-- Checking for module 'gstreamer-app-0.10'
-- No package 'gstreamer-app-0.10' found
-- Checking for module 'gstreamer-riff-0.10'
-- No package 'gstreamer-riff-0.10' found
-- Checking for module 'gstreamer-pbutils-0.10'
-- No package 'gstreamer-pbutils-0.10' found
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Checking for module 'libavresample'
-- No package 'libavresample' found
-- Checking for module 'libgphoto2'
-- No package 'libgphoto2' found
-- found IPP (ICV version): 9.0.1 [9.0.1]
-- at: /home/elsa/software/opencv3/opencv-3.2.0/build/3rdparty/ippicv/ippicv_lnx
-- 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
CMake Error at cmake/OpenCVModule.cmake:295 (message):
No extra modules found in folder:
/home/software/opencv3/opencv3.2.0/opencv_contrib-3.2.0/modules
Please provide path to 'opencv_contrib/modules' folder.
Call Stack (most recent call first):
modules/CMakeLists.txt:7 (ocv_glob_modules)
......
--
-- Configuring incomplete, errors occurred!
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeError.log".
出现这种情况,基本上就是失败了,要根据提示挨个填坑了。
首先是安装缺少的依赖包
根据这些提示,
sudo apt-get install \
libgstreamer0.10-dev \
libgstreamer-plugins-base0.10-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer-plugins-base-devel \
libgphoto2-dev \
当然,最好将cmake升级一下,不然也可能出现错误。
sudo apt-get install cmake
除此之外,还可能存在ippicv_linux_20151201.tgz下载失败的问题。这时候可以将第一步中我们提前下载好的该文件,移动到报告中提示的路径。
例如,报告称/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/找不到该文件,我们就可以在新的终端中进行如下操作
sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
之后可以新建终端,重新进行cmake
如果提示
-- Configuring done
-- Generating done