由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT、SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_contrib的项目库。因此需要手动下载opencv和opencv_contrib的源码,然后将两个源码放在一起手动编译安装。

由于我的电脑是VMware虚拟机跑的ubuntu18.04,并且ubuntu18.04中安装了ROS-melodic,而ROS-melodic装完后默认就把opencv-3.2.0版本顺带安装好了。所以,为了与ROS-melodic里面自带的opencv-3.2.0版本保持一致,我是下载了opencv-3.2.0和opencv_contrib-3.2.0源码,手动编译与安装,来覆盖ROS-melodic里面自带的opencv-3.2.0版本。下面我列出了我的环境:

  • VMware虚拟机
  • ubuntu18.04
  • opencv-3.2.0
  • opencv_contrib-3.2.0

1.下载opencv-3.2.0和opencv_contrib-3.2.0源码

去github下载就行了,下载地址如下:

下载好后将这两个文件同时解压到同个文件夹下,我是解压在opencv_install这样一个文件夹,如下图所示。

2.安装相关依赖

在编译和安装opencv源码之前,需要先安装相关依赖库,安装命令如下:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.-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--dev

上面命令执行会报错,错误说libjaster-dev无法安装,解决办法如下:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

3.用cmake-gui工具配置opencv编译参数

(1)安装cmake-gui工具

在正式编译opencv源码之前,需要对opencv中的CMake参数做设置,推荐用cmake-gui工具配置。先安装cmake-gui工具,如下命令:

sudo apt-get install cmake-gui

(2)设置cmake参数

打开终端,输入下面的命令,启动cmake-gui工具:

cmake-gui

在打开的界面中,将where is the source code栏中设成opencv-3.2.0的路径,将where to build the binaries栏中设成opencv-3.2.0/build的路径,如下图所示。

然后点击Configure按钮,进行配置。配置过程会报错误,错误说缺vgg_generated_48.i之类的,解决办法是直接去网上下载vgg_generated_48.i这个文件,下载地址如下:

https://download.csdn.net/download/u013085286/10309843

下载好vgg_generated_48.i后,将这个文件复制到报错中提示的路径下就行了。以我的路径为例,用下面的命令复制:

cp vgg_generated_48.i /home/ubuntu1804/Downloads/opencv_install/opencv_contrib-3.2./modules/xfeatures2d/cmake/.download/e8d0dcd54d1bcfdc29203d011a797179/vgg_generated_48.i
上面命令中路径里面的e8d0dcd54d1bcfdc29203d011a797179根据你实际报错提示为准,类似的缺这些文件的错误,去网上下对应的文件,同样的方法解决就行了。
补齐了这些文件后, 然后再次点击Configure按钮,进行配置,应该就能正常配置了。

(3)设置cmake编译参数

在界面中将一下几个参数的取值设置好,具体参数和取值如下所示:
CMAKE_BUILD_TYPE参数取值Release,如下图所示。

OPENCV_EXTRA_MODULES_PATH参数取值/home/ubuntu1804/Downloads/opencv_contrib-3.2.0/modules,这个路径的前面几个文件夹用你的实际路径替代,如下图所示。

CMAKE_INSTALL_PREFIX参数取值/usr/local,如下图所示。

这里需要特别提一下,还需要将ENABLE_PRECOMPILED_HEADERS参数取值设成OFF。如果不关闭这个参数的话,后面编译会报错误/usr/include/c++/7/cstdlib:75:15:fatal error:stdlib.h:No such file or direct.

上面这些编译参数都设置好后,就可以点击Generate按钮,生成makefile文件。

4.编译和安装opencv

切换到opencv-3.2.0/build目录,用make和make install编译和安装就行了。

cd ~/Downloads/opencv_install/opencv-3.2./build/
make
sudo make install

当你执行完上面命令的时候,并看到100%的时候,恭喜你!安装成功!

在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程的更多相关文章

  1. ubuntu18.04中安装iNode

    title: ubuntu18.04中安装iNode toc: false date: 2018-09-01 17:52:20 categories: methods tags: ubuntu iNo ...

  2. Ubuntu18.04中安装Python3.7教程

    Ubuntu18.04中安装Python3.7教程 链接https://blog.csdn.net/weixin_42056625/article/details/82970358

  3. Ubuntu18.04中安装cuda的记录

    一.参考: https://blog.csdn.net/QLULIBIN/article/details/78714596 https://www.jianshu.com/p/00c37b09f0f3 ...

  4. ubuntu18.04中安装和卸载cuDNN

    udnn安装注意点: cudnn的安装其实很简单,关键点是一定要安装cuda对应的cudnn包,本机中安装的cuda7.5所以对应的cudnn为v5.1这很重要,我就是安装错了版本,导致后面caffe ...

  5. Ubuntu18.04中安装vsftpd服务/ ftp上传文件提示无权限 553 Could not create file.

    1,安装 $ sudo apt-get install vsftpd 2.配置 备份并创建新的配置文件. $ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_ori ...

  6. Ubuntu18.04中安装virtualenv和virtualenvwrapper

    1.安装virtualenv和virtualenvwrapper pip3 install virtualenv pip3 install virtualenvwrapper 2.创建目录用来存放虚拟 ...

  7. Ubuntu18.04下安装搜狗输入法

    Ubuntu18.04下安装搜狗输入法 第一步:安装 fcitx输入框架 sudo apt-get install fcitx 第二步:在官网下载 Linux 版本搜狗输入法 https://piny ...

  8. Ubuntu18.04下安装MySQL

    Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...

  9. 在Ubuntu18.04中QT编程的环境构建(转)

    在Ubuntu18.04中QT编程的环境构建 原点分析 百家号06-2110:14 如果说QT大家觉得陌生的话,那么 Windows 早年推出的C++图形用户界面的应用程序开发框架MFC,应该是耳熟能 ...

随机推荐

  1. 帝国cms7.5免登陆发布模块

    帝国cms7.5免登陆发布文章. 帝国cms增加了金刚模式,登录发布文章有难度.免登录发布模块配合火车采集器,完美解决你遇到的问题. 1.必备工具: 1.火车采集器 2.免登陆发布接口 3.帝国cms ...

  2. 20190630A(贪心)

    题目描述 约翰留下他的N只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时候,他看到了一幕惨剧:牛们正躲在他的花园里,啃食着他心爱的美丽花朵!为了使接下来花朵的损失最小 ...

  3. 【原创】python倒排索引之查找包含某主题或单词的文件

    什么是倒排索引? 倒排索引(英语:Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射.它是文 ...

  4. css3关于body的默认滑动机制

    css关于body的默认滑动机制 大家都知道 body里面只要高度超出了原来的高度就可以滚动要取消这个机制 只能设置height:100% overflow:hidden就能取消了

  5. ffmpeg centos yum安装

    CentOS 6&7安装ffmpeg   CentOS 6和7安装方法是不一样的,下面分别说明: 安装前都需要先安装epel扩展源 yum -y install epel-release ce ...

  6. suseoj 1206 众数问题 (相邻数比较)

    1206: 众数问题 时间限制: 1 Sec  内存限制: 128 MB提交: 45  解决: 8[提交][状态][讨论版][命题人:liyuansong] 题目描述 给定含有n个元素的多重集合S,每 ...

  7. Java,你告诉我 fail-fast 是什么鬼?

    本篇我们来聊聊 Java 的 fail-fast 机制,文字一如既往的有趣哦. 01.前言 说起来真特么惭愧:十年 IT 老兵,Java 菜鸟一枚.今天我才了解到 Java 还有 fail-fast ...

  8. 【阿里巴巴-高德-汽车事业部】【内推】Java技术专家、前端技术专家、C++技术专家(长期招聘)

    简历接收邮箱:yx185737@alibaba-inc.com 邮件请备注来自CSDN 一.Java技术专家 职位描述 研究汽车智能化和在线服务前沿技术,从事在线数据服务和车联网服务的设计和研发 负责 ...

  9. 业务领域建模Domain Modeling

    我的工程实践选题为ESP32低功耗的实现,本项目基于ESP32嵌入式开发平台.下文将以需求为基础,对该项目进行领域建模. 一.概念介绍 1.业务建模 1.1 概念介绍 业务建模(Business Mo ...

  10. ubuntu server 1604 关机和重启

    命令有很多,记住以下两三个就够了 重启: sudo reboot (这个短,易记) sudo shutdown -r now  统一的shutdown形式 关机:sudo shutdown -P no ...