- OpenCV有c++接口的和Python接口的,本文主要介绍c++接口的安装,Python接口的opencv较为容易安装
- 如果只是使用 OpenCV 的基本功能,那么opencv安装方法非常简单快捷。但是如果要使用一些额外的算法,比如人脸识别,那就需要安装 opencv_contrib 来实现,本文安装了opencv_contrib软件包,如果只安装opencv可以参考Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)
- 本文主要参考http://techawarey.com/programming/install-opencv-c-c-in-ubuntu-18-04-lts-step-by-step-guide/
- 适用于OpenCV版本4.5.0,我尝试OpenCV3失败了
安装cmake
- 在终端输入命令
sudo apt-get install cmake
安装依赖库
- 在终端依次执行下面的语句
更新软件源
1 2 | 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软件包
1 2 3 | 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软件包
1 2 3 | sudo apt-add-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev |
下载OpenCV源码
- 进入你要下载的目标目录
- 使用git下载
1 2 | git clone https://github.com/Itseez/opencv.git git clone https://github.com/Itseez/opencv_contrib.git |
- 也可以直接到github下载,网址跟用git下载的网址一样
构建和安装OpenCV
- 创建release目录
1 2 3 | cd opencv mkdir release cd release |
- 终端执行如下命令
- 注意最后一句path路径要改为自己电脑对应文件的目录
1 | 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 - 解决方法
- Find & Set “opencv.pc” file path
1 2 3 4 | 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 |
报错
- 参考博客编译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/ 路径下即可。