资源链接: https://pan.baidu.com/s/1yDZUlk2ifIaAoSeJIZhNKA 密码: 6fji
包含3.2.0全文件和一些安装用到的依赖文件。
1.先安装好Opencv依赖。
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config
2.下载opencv和opencv_contrib,我给出了两个库3.2.0的百度网盘连接。
3.opencv_contrib放到opencv子目录,并新建build文件。
4.编译。
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/改成你自己的路径/opencv3.2.0/opencv_contrib-3.3.1/modules/ ..
make
5.各种问题。
5.1 lapack错误
fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: No such file or directory
解决方法
sudo apt-get install liblapacke-dev
vim /home/...../opencv3.2.0/build/opencv_lapack.h
这个文件路径看自己的报错信息
编辑opencv_lapack.h文件,#include"LAPACKE_H_PATH-NOTFOUND/lapacke.h"改为#include"lapacke.h"
5.2 Failed to download ICV package: ippicv_linux_20151201.tgz
百度网盘里面有这个文件 ippicv_linux_20151201.tgz , 放到
./opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
选择替换即可。
5.3 cannot download default sources list from:xxxxxx
缺少boostdesc_bgm.i等文件
这里会缺很多文件,原因是这些文件服务器都在国外。
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
都放在百度云盘了,拷贝到opencv_contrib/modules/xfeatures2d/src/目录下。
这个方法有可能会失败,原因是程序还是会尝试连接下载。
还有一个方法(推荐这个方法) 修改hosts文件,添加网址IP。
通过IPAddress.com首页,输入 报错显示连接失败的网址 查询到真实IP地址,然后进入hosts文件。
sudo vi /etc/hosts
添加以下内容保存即可
199.232.28.133(此处改为你查到的IP) www.github.com(此处改为你需要的网址, IP+空格+之前提示连接失败的网址,会有四个IP可以都加上)
sudo rosdep init
可能还是有连接失败,反复编译,直到所有文件下载完成。
5.4 OpenCVCompilerOptions.cmake(21)ELSE 报错
打开/opencv-3.2.0/cmake/OpenCVCompilerOptions.cmake
21行多个else,注释掉就ok了