Step1. 安装FFMPEG,要想完全安装,这一步是必须的,本人就是没有开始没有安装这一部分,导致后面编译出现error而暂停的编译的情况。出现的错误,例如:modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:261: recipe for target 'lib/libopencv_videoio.so.3.2.0' failed。
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:261: recipe for target 'lib/libopencv_videoio.so.3.2.0' failed。
(videoio大致就是跟FFMPEG相关了)
本人下载的是ffmpeg-3.1.11.tar.bz2,下载地址去github上ffmpeg,然后选择下载版本就可以了。安装指令比较简单,如下
这部分比较顺利,没遇到什么问题。tar xvf ffmpeg-3.1.11.tar.bz2 cd ffmpeg-3.1.11 sudo apt-get install yasm ./configure --host-cppflags=-fPIC --host-cflags=-fPIC --enable-shared make sudo make install
Step2. apt-get安装相关的依赖库。这些依赖库在opencv编译的时候会用到。
$ 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 # 处理图像所需的包
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
$ sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
$ sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
$ sudo apt-get install ffmpeg
这一块遇到了一些小问题,在apt-get安装的时候遇到的错误,如下图 :
出现这个错误的原因是其中某些依赖需要切换到python2进行安装(本人用的python3.5)。前两句语句意思是设置python两个版本的优先级,从而进行切换。要是出现这类错误,可能是这个原因。
sudo update-alternatives --install /usr/bin/pythonpython /usr/bin/python2 200
sudo update-alternatives --install /usr/bin/pythonpython /usr/bin/python3 100
Step3. 下载opencv,opencv_contrib包。注意,两个文件要版本一致。比如我下载的是opencv-3.2.0,opencv_contrib-3.2.0。下载地址同样在github上搜,选择相应版本的zip文件进行下载。目录结构:我将opencv_contrib-3.2.0放在opencv-3.2.0文件夹里面。
cd opencv-3.2.0 ###此处省略了解压的步骤。只需注意opencv_contrib-3.2.0在
###opencv-3.2.0文件夹里面。
mkdir build
cd build
###下面的cmake版本是不带cuda的
###标红的那个opencv_contrib-3.2.0文件夹,我重命名文件夹为opencv_contrib
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/xwlab/opencv-3.2.0/opencv_contrib/modules \
-D PYTHON3_EXCUTABLE=/usr/bin/python \
-D WITH_CUDA=OFF \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
.###这是带cuda的,下面带颜色的数值要自己查###查询网址:查看cuda型号网址cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/xwlab/opencv-3.2.0/opencv_contrib/modules \
-D PYTHON_EXCUTABLE=/usr/bin/python \
-D WITH_CUDA=ON \
-D WITH_CUBLAS=ON \
-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D CUDA_ARCH_BIN="5.2" \
-D CUDA_ARCH_PTX="" \
-D CUDA_FAST_MATH=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
以上带cuda版本和不带cuda版本本人都试过,并且都成功了。
Step4. 编译,安装,验证。
make -j4
sudo make install
sudo ldconfig
到这里安装就基本完成了,验证如下:
python #进入python环境 import cv2 print(cv2.__version__) #打印opencv版本 output:3.2.0 cam = cv2.VideoCapture(0) #验证ffmpeg功能 print(cam.isOpened())
参考:https://www.cnblogs.com/arkenstone/p/6490017.html
http://dev.t7.ai/jetson/opencv/
https://jingyan.baidu.com/article/63acb44a3b326561fcc17e13.html
http://blog.csdn.net/qq_26656329/article/details/77092690