Ubuntu16.04安装opencv3.1.0

Ubuntu16.04下安装opencv3.1

在安装opencv3.1的过程中遇到了一些问题,在这里进行总结。

步骤一:安装依赖包

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

步骤二:下载opencv包

方法①:进入opencv官网,选择opencv3.1版本:https://opencv.org/releases.html
Ubuntu16.04安装opencv3.1.0_第1张图片
方法②:官网下载较慢,可以选择其他方式,例如:https://download.csdn.net/download/qq_35470725/10114300

步骤三:安装

将下载的压缩包移至指定位置解压,比如home下,终端执行:

cd opencv-3.1.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

其中第四行命令也可以省略为

cmake ..

但要注意之后cmakelist.txt文件编写时的opencv路径问题。
如果出现错误,可能的原因是路径的问题,在下边会有详述。

若无报错,则安装完成。

步骤四:可能的错误

①ICV: Downloading ippicv_linux_20151201.tgz 超时

cmake的过程中要下载ippicv_linux_20151201,由于网络的原因,这个文件经常会下载失败。

解决的办法是手动下载:ippicv_linux_20151201.tgz

下载完后替换opencv-3.1.0/3rdparty/ippicv/downloads/linux-*目录下的同名文件,重新cmake。

②but it set OpenCV_FOUND to FALSE so package “OpenCV” is considered to be NOT FOUND

出现这种错误的原因是opencv的路径不对。解决的方法也有两种:

第一:
在CMakeLists.txt中find_package( OpenCV REQUIRED )这行代码后面添加一行代码指定OpenCV 的路径。添加这一行:

set(OpenCV_DIR /usr/local/share/OpenCV)

在我的电脑上默认OpenCV 安装在/usr/local/share/OpenCV路径下的。

但是我本人没有使用这种方案,因为这样的话岂不是每次编译程序都要手动添加opencv 的路径嘛,这样会很麻烦。

第二:
错误中会有这么一句警告:

Warning at /home/***/opencv-2.4.6.1/cmake/OpenCVConfig.cmake

这说明这个config配置文件出了问题,再看错误的原因:

it set OpenCV_FOUND to FALSE

所以,最直接的方法就是打开上边路径的OpenCVConfig.cmake文件,在最底下一行输出:

set(OpenCV_FOUND TRUE)

Ubuntu16.04安装opencv3.1.0_第2张图片
cmake通过。不用每次都修改cmakelist.txt文件了。

make出错:未定义引用

输入make指令后,会出现一大堆未定义引用的错误。例如:

对‘cvLoadImage’未定义的引用
对‘cvNamedWindow’未定义的引用
……

最简单的方法是:在CMakeLists.txt修改这一句

find_package(OpenCV [版本号] REQUIRED)

例如:

find_package( OpenCV 3.1.0 REQUIRED )  #修改这一句啊  

注:数字3.1.0与前后都有一个空格

你可能感兴趣的:(Ubuntu16.04安装opencv3.1.0)