1.安装准备
1.1安装环境
- ubantu 18.04
- opencv4.4.0
- opencv-contrib4.4.0 (支持 dnn 图像分类、图像分割等模块)
注:opencv和扩展库opencv-contrib的版本需保持一致,本文以4.4.0为说明,其他版本的安装方法一样
1.2 安装cmake
sudo apt install cmake
1.3 安装依赖包
sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libpng-dev libjasper-dev libcurl4-openssl-dev libtbb2 libdc1394-22-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
1.2 下载opencv及contrib源码(4.4.0)
opencv源码下载
opencv4.4.0 源码地址:https://github.com/opencv/opencv/releases?page=2
下载Source code(zip)
或Source code(tar.gz)
opencv-contrib下载
opencv-contrib 源码地址:https://github.com/opencv/opencv_contrib/releases/tag/4.4.0
下载Source code(zip)
或Source code(tar.gz)
2.安装
2.1 新建安装目录
mkdir imgproc
2.2 解压
将opencv及opencv_contrib源码,拷贝到imgproc目录,并解压
tar zxvf opencv-4.4.0.tar.gz
tar zxvf opencv_contrib-4.4.0.tar.gz
2.3 配置opencv
2.3.1 创建编译和安装目录
在opencv-4.4.0
源码下新建build目录
cd ~/imgproc/opencv-4.4.0
mkdir build #新建build目录
在imgproc
目录下新建安装目录
cd ~/imgproc
mkdir opencv-4.4.0_install
2.3.2 编译opencv
cd ~/imgproc/opencv-4.4.0/build #进入build目录
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/home/yuan/opencv-4.4.0_install -D OPENCV_EXTRA_MODULES_PATH=/home/yuan/opencv_contrib-4.4.0/modules ..
注:/home/yuan需要改为自己的家目录,..
表示安装到上一级目录,不要遗漏
1. 编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决
参考链接:
由于网速等原因,以下文件需要在本地下载好,其中下载链接可以在build
文件夹下的日志文件 CMakeDownloadLog.txt
,在日志文件CMakeDownloadLog.txt
中搜索 boostdesc_bgm.i
关键词 (不是在文件夹中搜索)
日志文件里就有它的下载地址,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/
路径下即可。
总共缺了以下几个文件,都需要下载拷贝:
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
如果不想自己下载,可以直接下载我下载好的文件,文件链接:ubantu 下安装C++ 版opencv的依赖文件
2 提示找不到feature2d/test/test_detectors_regression.impl.hpp
参考链接:
编译过程中出现如下错误:
①fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
原因是没找到这个文件,解决方法如下:
将opencv4.4.0 / modules / 下的features2d文件复制,然后粘贴到build目录中来解决该问题
3 如果编译中断,根据下面的命令重新执行编译过程
make clean
make -j4
2.3.3 安装
编译完成后需要执行make install
来进行安装
make install
完成编译后,在安装目录下将生成如下文件
2.4 环境变量配置
2.4.1 打开或创建opencv4.conf文件,并添加opencv安装路径
sudo gedit /etc/ld.so.conf.d/opencv4.conf
在opencv4.conf文件中添加一行如下命令:
/home/yuan/opencv-4.4.0_install/lib
2.4.2 使opencv配置文件生效
sudo ldconfig
2.4.3 配置bash环境变量
sudo gedit ~/.bashrc
在文件末尾添加如下内容:
export PKG_CONFIG_PATH=/home/yuan/opencv-4.4.0_install/lib/pkgconfig
生效配置文件
source ~/.bashrc
2.4.4 验证opencv环境配置是否成功
进入opencv-4.4.0_install/lib/pkgconfig
,查看文件清单:
其中opencv4.pc里面记录了opencv有关的环境,包括版本、依赖的库以及头文件等。
vim opencv4.pc
运行如下命令测试能不能找到opencv4
库文件,注意opencv4
名需要与pkgconfig文件下的opencv4.pc
对应。
pkg-config --cflags --libs opencv4
2.5 opencv测试
2.5.1 进入example_cmake 目录
找到opencv-4.4.0/samples/cpp/example_cmake`目录,该目录下面有一个测试程序,
删除多余的文件,只保留CMakeLists.txt
和example.cpp
这两个文件
rm -rf Makefile
2.5.2 修改CMakeLists.txt
vim CMakeList.txt
将opencv源码的build路径添加到Opencv DIR
中
set (Opencv_DIR /home/SMCV/einrj/imgproc/opencv-4.4.0/build) # 需要修改为对应build目录
执行cmake
cmake .
执行后,生成了makefile文件
最后执行make
make
执行后,效果如下
完成执行后,生成目标可执行文件opencv_example
直接运行可执行文件即可
./opencv_example