1、说明
因为DSAC全系列都是需要使用opencv的,目前认为是用于计算旋转矩阵时候涉及到的雅克比矩阵。因此需要安装opencv。
opencv不好安装算是出了名的,之前我已经安装过很多回,以为已经精通了安装,然而实际上并不是这样,因此这次又认真研究了两天,把安装问题算是彻底解决了。
安装opencv主要会遇到的问题就是stitching找不到头文件了呀,文件下载慢,下载不下来啊之类的。
对于stitching找不到xfeature2d包的头文件的问题,我看了github里面的issue里面的回答,有说什么cmake不支持https协议导致的,但我觉得不是,我觉得问题的主要原因还是这两个模块是不在同一个文件夹内,编译时候cmake就找不到xfeature2d的头文件了,所以可能是cmake的问题,可能是版本问题也可能是cmakelist写的有问题。
文件下载慢,下不下来就是网络问题了。
为了能够比较好的解决上面的问题,也就是让opencv能够好安装一些,我做了下面的调整
- 去掉了stitching里面对于xfeatures2d里面头文件的支持,包括编译的样例(sample)里面的。
- 把一些要下载的文件下载后集中放起来了。下面会提到那些文件进行了离线。
- 对contrib里面的xfeature2d的下载文件进行了调整,以离线安装。对contrib里面的face里面的下载文件进行了调整,以离线安装。对第三方库的ippicv进行了离线处理。
- 安装不适用windows和mac,没有离线它们的文件。
于是就有了下面的安装包,这个比官网的要大一些。opencv3.4.2是307.8Mb大小,contrib是60.4MB大小。
2、安装步骤:
请提前安装好cmake和g++。
0. 先在终端里面安装两个包
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
1. 下载下面的安装包,下载后放到要安装的位置进行解压。
链接:https://pan.baidu.com/s/13uvje0finRSQ5DQVylV4Dw
提取码:krxn
unzip Ubuntu18.04installOpencv3.4.2.zip
2. 解压里面的opencv_contrib-3.4.2.zip文件
unzip opencv_contrib-3.4.2.zip
3. 修改opencv_install.sh文件里面第29行下面两个变量后面的路径,
OPENCV_EXTRA_MODULES_PATH=【opencv_contrib-3.4.2的解压路径,要绝对路径,以/结尾,例如/media/iccd/expDisk/expr/Ubuntu18.04installOpencv3.4.2/opencv_contrib-3.4.2/】modules/
OPENCV_INSTALL_ROOT_PATH=【Ubuntu18.04installOpencv3.4.2的解压路径,要绝对路径,以/结尾,例如/media/iccd/expDisk/expr/Ubuntu18.04installOpencv3.4.2/】
所以上面例子完整的应该是:
OPENCV_EXTRA_MODULES_PATH=/media/iccd/expDisk/expr/Ubuntu18.04installOpencv3.4.2/opencv_contrib-3.4.2/modules/
OPENCV_INSTALL_ROOT_PATH=/media/iccd/expDisk/expr/Ubuntu18.04installOpencv3.4.2/
4. 这个时候就可以进行安装了。直接在Ubuntu18.04installOpencv3.4.2.zip解压的文件夹路径打开terminal然后输入命令下面等待安装完成即可。
sudo ./opencv_install.sh
3. 补充Ubuntu20.04安装opencv要注意的地方
今天在Ubuntu20.04上进行安装时发现有一些依赖(libfaac-dev)无法下载安装,导致无法顺利进行,我这边将源换成了台湾的https://ftp.tc.edu.tw/Linux/ubuntu后才顺利下载下来的,记得把multiverse选项选中,记在这里给有需要的小伙伴。