- OpenCV有c++接口的和Python接口的,本文主要介绍c++接口的安装,Python接口的opencv较为容易安装
- 如果只是使用 OpenCV 的基本功能,那么opencv安装方法非常简单快捷。但是如果要使用一些额外的算法,比如人脸识别,那就需要安装 opencv_contrib 来实现,本文安装了opencv_contrib软件包,如果只安装opencv可以参考Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)
- 适用于OpenCV版本4.5.0,我尝试OpenCV3失败了
安装cmake
- 在终端输入命令
sudo apt-get install cmake
安装依赖库
- 在终端依次执行下面的语句
更新软件源
sudo apt-get update
sudo apt-get upgrade
安装cmake git等工具
sudo apt-get install build-essential cmake git libgtk2.0-dev libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
配置python环境
- 安装python之前先看看自己电脑是否有python,没有必要的话不需要安装多个python环境
- 查看自己电脑的python版本
-
python3 -V
或者python2 -V
- 一般情况下Ubuntu自带的是python3
sudo apt-get install python3-numpy libtbb2 libtbb-dev
- 下面这个包要对应自己的python版本安装
sudo apt-get install python3.8-dev
- 如果提示找不到python3.8-dev软件包,则执行下面命令后再次安装
sudo apt-add-repository ppa:deadsnakes/ppa
其他依赖
- 执行如下命令
sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavutil-dev libavfilter-dev libavresample-dev
- 如果提示找不到libfaac-dev软件包
sudo apt-add-repository "deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse"
sudo apt update
sudo apt install libjasper1 libjasper-dev
- 如果提示找不到libjasper-dev软件包
sudo apt-add-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
下载OpenCV源码
- 进入你要下载的目标目录
- 使用git下载
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
- 也可以直接到github下载,网址跟用git下载的网址一样
构建和安装OpenCV
- 创建release目录
cd opencv
mkdir release
cd release
- 终端执行如下命令
- 注意最后一句path路径要改为自己电脑对应文件的目录
cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib/modules> <opencv/>
- 完成cmake的配置后,利用make指令进行编译,多线程进行
make -j4
- 出现报错
fatal error: boostdesc_bgm.i: 没有那个文件或目录
解决方法见后文。 - 然后安装
sudo make install
- 配置
sudo ldconfig
- 回到主目录
cd
检验安装
pkg-config --modversion opencv
- 如果报错
pakage opencv not found
- 解决方法
- 先安装并配置apt-file
sudo apt install apt-file
sudo apt-file update
- Find & Set “opencv.pc” file path
apt-file search opencv.pc
ls /usr/local/lib/pkgconfig/
sudo cp /usr/local/lib/pkgconfig/opencv4.pc /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc
pkg-config --modversion opencv
报错fatal error: boostdesc_bgm.i: 没有那个文件或目录
解决方法
- 参考博客编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件
- opencv_contrib库里的issues中有提到这个问题,https://github.com/opencv/opencv_contrib/issues/1301,有人提供了缺失的各个文件的链接,直接在这个网页里搜索 BenbenIO 这个用户的回答,或者到本文提供的下载镜像去下载:boostdesc_bgm.i,vgg_generated_48.i等.rar
- 下载后,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。