参考文档:
https://blog.csdn.net/u011171361/article/details/106289537
https://blog.csdn.net/new_delete_/article/details/84797041
https://www.cnblogs.com/arxive/p/11778731.html
1.下载(以4.2.0为例)
OpenCv:https://opencv.org/releases/
OpenCv_Contrib: https://github.com/opencv/opencv_contrib/releases
注意:下载的OpenCV和OpenCV_Contrib的版本要一致,这里笔者下的都是4.2.0
2.安装所需库
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
过程中遇到报"无法定位软件包libjasper-dev的的情况"
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev
3.编译源码
1):准备工作:
1.先把文件的版本号去掉
opencv-4.2.0 改成 opencv
opencv_contrib-4.2.0 改成 opencv_contrib
2.将opencv_contrib文件夹移动opencv里面
编译的时候有可能会报boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录#include "boostdesc_bgm.i
下载缺失的文件:https://download.csdn.net/download/u011171361/12456484
放到/home/opencv/opencv/opencv_contrib/modules/xfeatures2d/src 如图
2): 编译
cd opencv
mkdir -m 777 build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_SHARED_LIBS=OFF -D WITH_OPENMP=ON -D ENABLE_PRECOMPILED_HEADERS=OFF OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
注:
1.CMAKE_INSTALL_PREFIX 库安装在/usr/local
2.OPENCV_EXTRA_MODULES_PATH 指明opencv_contrib模块路径
3.增加 -D WITH_OPENMP=ON 防止报recipe for target 'all' failed
4.最后面的两个点不能少
配置完成之后
make -j8
make install
4.配置opencv
1.打开:sudo gedit /etc/ld.so.conf.d/opencv.conf
2.添加:/usr/local/lib
3.保存生效:sudo ldconfig
#####################################################
1.打开:sudo gedit /etc/bash.bashrc
2.添加:PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
3.保存生效:source /etc/bash.bashrc
5.测试是否成功
cd ../samples/cpp/example_cmake
cmake .
make
./opencv_example
注:摄像头黑屏不显示,但有Hello OpenCV出现,报Failed to load module "canberra-gtk-module",
解决办法:
sudo apt install libcanberra-gtk-module
效果图: