在ubuntu+clion+opencv3.1.0中运行opencv中第三方库的程序
背景:
在学习高翔视觉SLAM十四讲的时候,学到视觉里程计方面,主要是学习特征检测与匹配,视觉SLAM方面介绍这块比较少,推荐学习opencv.推荐《opencv3编程入门》毛星云写的,学习opencv入门比较好的书籍。当然你的英文水平好的话可以学习官方文档教程。
注意:由于目前发行的opencv3关于特征检测算子(SURF、SIFT、ORB)已经从官方行的opencv3中移除,转移到第三方库xfeatures2d.所以想要在opencv3运行这些程序的话需要遵照下面的步骤。
一.配置opencv3.4.3(含contrib3.4.3)(按照对应版本下载)
1.下载
https://github.com/opencv/opencv/releases 请下载opencv3.4.3 Source code(zip);
https://github.com/opencv/opencv_contrib/releases/tag/3.4.3 请下载opencv_contrib3.4.3 Source code(zip);
编译contrib主要是为了使用xfeatures2d中的API,角点检测、特征提取与匹配。
2.安装
2.1安装依赖(ubuntu一般已经安装好,只是为了检查一下)
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
2.2解压
我这里并没有用命令解压,直接手动解压到 Downloads
1.将opencv-3.4.3文件夹复制到home,重命名为opencv;
2.再将opencv_contrib-3.4.3文件夹复制到opencv文件夹,重命名为opencv_contrib;
3.在opencv中新建一个build文件夹,作为编译目的路径,到此准备工作ok~如下图所示。
3.编译
3.1安装cmake-gui(用图形界面编译安装不易出错,简介方便)
sudo apt-get install cmake-gui
安装好了之后,进入opencv文件打开终端进入cmake-gui图形界面
cmake-gui
3.2使用cmake-gui编译
1.设置好源路径和目的路径后,点击Configure(选择Unix Makefiles),然后点击finish。
2.Configure之后我们更改两个地方:
1)在CMAKE_BUILD_TYPE 值处输入RELEASE(若本身为Release则不用更改;这里说明一下,CMAKE_INSTALL_PREFIX为安装路径,系统默认为/usr/local,如若对ubuntu不熟悉,则不要更改,默认就好)。
2)在OPENCV_EXTRA_MODULES_PATH处加入opencv_contrib路径。
注意,不是选opencv_contrib文件夹,而是需要选中opencv_contrib里面的modules文件夹!
3.确认无误后,点击Configure;显示Configuring done后,点击Generate生成文件;这时资源文件就出现在build文件夹中,我们可以关闭cmake了。
3.3make并install
1.在opencv/build文件夹中打开终端,输入指令编译(此次时间漫长20分钟左右)。
sudo make
2.100%后,继续输入指令安装。
sudo make install
3.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到。
sudo gedit /etc/ld.so.conf.d/opencv.conf
4.在文件中添加,然后保存关闭,提示的错误不用管它。
/usr/local/lib
5.执行命令,使配置路径生效
sudo ldconfig
6.配置bash
sudo gedit /etc/bash.bashrc
7.在文件最后加入两行,然后保存。
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
8.执行命令,使配置路径生效
source /etc/bash.bashrc
9.更新系统路径
sudo updatedb
10.到此位置,我们的opencv+opencv_contrib配置完成,已经可以调用opencv库函数啦。
Clion中配置cmake-gui
实际操作演示
【特征点的检测与匹配】是计算机视觉中非常重要的技术之一。在物体检测、视觉跟踪、三维重建等领域都有很广泛的应用。
opencv提供了10种特征检测方法:
【FAST】
【STAR】
【SIFT】
【SURF】
【ORB】
【MSER】
【GFTT】
【HARRIS】
【Dense】
【SimpleBlob】
1【SURF特征点检测】
SURF—加速版的具有鲁棒性的特征算法(SIFT—尺寸不变特征变换算法的加速版),SURF最大特征在于采用harr特征以及积分图像的概念,
大大加速了程序的运行时间。应用于计算机视觉的物体识别、3D重建中。
缺点:严重依赖局部像素的梯度方向,容易出现方向不准等问题。
算法原理----①:选用二阶标准高斯函数作为滤波器&