注:opencv和扩展库opencv-contrib的版本需保持一致,本文以4.4.0为说明,其他版本的安装方法一样
sudo apt install cmake
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
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)
mkdir imgproc
将opencv及opencv_contrib源码,拷贝到imgproc目录,并解压
tar zxvf opencv-4.4.0.tar.gz
tar zxvf opencv_contrib-4.4.0.tar.gz
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
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需要改为自己的家目录,..
表示安装到上一级目录,不要遗漏
在文件~/opencv4.3/3rdparty/ippicv/ippicv.cmake
中找3个关键值:
43行:下载目录的地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
5行:IPPICV_COMMIT值:a56b6ac6f030c312b2dce17430eef13aed9af274
10行:文件名:ippicv_2020_lnx_intel64_20191018_general.tgz
三个值组合起来,就是下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz
下载好了之后,直接放到~/opencv4.3/3rdparty/ippicv/目录下,修改 ippicv.cmake文件的第42行:
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
"file:///xxxxx/opencv4.3/3rdparty/ippicv/"
参考: Ubuntu18.04 安装 OpenCV4.3 及环境配置
参考链接:https://www.cnblogs.com/penuel/p/13696252.html
由于网速等原因,以下文件需要在本地下载好,其中下载链接可以在build
文件夹下的日志文件 CMakeDownloadLog.txt
,在日志文件CMakeDownloadLog.txt
中搜索 boostdesc_bgm.i
关键词 (不是在文件夹中搜索)
日志文件里就有它的下载地址,直接复制其下载地址到网页可以看该到文件的源码,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/
路径
修改
~/opencv_contrib_4.3/modules/xfeatures2d/cmake/download_boostdesc.cmake 文件27行:
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${OPENCV_3RDPARTY_COMMIT}/"
"file:///xxxxx/opencv_contrib_4.3/modules/xfeatures2d/src"
因为这个https://raw.githubusercontent.com
网址下载不了,需要更换到本地的路径,注意格式file://
+ 绝对路径
下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
下载完成后,把face_landmark_model.dat.zip 放到文件夹~/opencv_contrib_4.3/modules/face/
中,修改 ~/opencv_contrib_4.3/modules/face/CMakeLists.txt 19行:
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
"file:///xxxxx/opencv_contrib_4.3/modules/face/"
参考: Ubuntu18.04 安装 OpenCV4.3 及环境配置
如果不想自己下载,可以直接下载我下载好的文件,文件链接:ubantu 下安装C++ 版opencv的依赖文件
2 提示找不到feature2d/test/test_detectors_regression.impl.hpp
参考链接:https://blog.csdn.net/xiewenrui1996/article/details/108683866
编译过程中出现如下错误:
①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
sudo gedit /etc/ld.so.conf.d/opencv4.conf
在opencv4.conf文件中添加一行如下命令:
/home/yuan/opencv-4.4.0_install/lib
sudo ldconfig
sudo gedit ~/.bashrc
在文件末尾添加如下内容:
export PKG_CONFIG_PATH=/home/yuan/opencv-4.4.0_install/lib/pkgconfig
生效配置文件
source ~/.bashrc
进入opencv-4.4.0_install/lib/pkgconfig
,查看文件清单:
其中opencv4.pc里面记录了opencv有关的环境,包括版本、依赖的库以及头文件等。
vim opencv4.pc
运行如下命令测试能不能找到opencv4
库文件,注意opencv4
名需要与pkgconfig文件下的opencv4.pc
对应。
pkg-config --cflags --libs opencv4
找到opencv-4.4.0/samples/cpp/example_cmake`目录,该目录下面有一个测试程序,
删除多余的文件,只保留CMakeLists.txt
和example.cpp
这两个文件
rm -rf Makefile
vim CMakeList.txt
将opencv源码的build路径添加到Opencv DIR
中
set (Opencv_DIR /home/SMCV/einrj/imgproc/opencv-4.4.0/build) # 需要修改为对应build目录
cmake .
make
执行后,效果如下
完成执行后,生成目标可执行文件opencv_example
直接运行可执行文件即可
./opencv_example