需要准备的基本材料(请先看完整个安装过程再进行下面的操作):

一、到Opecv-Release的Github项目上下载最新的Opencv版本,注意---基于python2.7,可选用 OpenCV2.3/2.4 以及 OpenCV3.X,我们选取版本3.3:

下载地址:https://github.com/opencv/opencv/releases/tag/3.3.0

二、安装GUN GCC编译器,对于Ubuntu16.04版本的Linux操作系统这款编译器是自带的

三、安装Cmake跨平台编译工具(CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档)安装的方法:sudo apt-get install cmake

我已经安装好了,就提示无需更新,无需安装

四、安装python2.7,在ubuntu中一般来说是自带python2.7的,如果没有安装,请参看博客中其他的教程

五、安装numpy,在安装好python之后建议您安装pip,安装完pip之后就可以使用pip来安装各种各样的库了,pip install numpy

我已经安装好了,就提示无需更新,无需安装

六、安装pkg-config指令(注意,这里的安装很重要,例如libgtk2.0-dev软件包涉及到了opencv中的imshow等窗口调用能否使用的问题):

sudo apt-get install pkg-config libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

开始安装Opencv For Python:

1、找到下载的Opencv3.3的目录:

2、执行下面的指令(在执行指令的过程之前,我们可以切换到su超级权限下进行操作,也可以不切换到su权限下,切换到那个用户,以后就只能在那个用户下调用对应的cv2的图像处理库):

tar -xzvf opencv-3.3.0.tar.gz
cd opencv-3.3.0/
cd ..
mkdir my_build_dir
cd my_build_dir
cmake ../opencv-3.3.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local
make # make -j4表示开4个线程来进行编译
make install

解压之后的opencv-3.3.0的目录:

Cmake的过程和结果如下:

建立的my_build_dir经过 cmake ../opencv-3.3.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local之后的结果

在my_build_dir中执行make和make install即可

编写代码:

运行结果:

安装过程之中碰到的问题:

"FATAL: In-source builds are not allowed.
You should create separate directory for build files."

意思就是说不要在源代码内部直接编译程序,以免污染源代码,所以在opencv-2.4.13目录之外建立文件夹my_build_dir,然后在这个目录里面执行cmake。

详细问题参照下面的链接:

https://stackoverflow.com/questions/45518317/in-source-builds-are-not-allowed-in-cmake

Ubuntu下卸载重装Opencv的教程参考:

http://www.cnblogs.com/txg198955/p/5990295.html

注:安装之后可能遇到的问题

Question-1:

简单的意思就是调用了window相关的程序,但是没有安装GTK相关的包,函数function不能实现,需要安装libgtk2.0-dev 和 pkg-config。

如果没有使用到opencv的显示接口的话,基本的opencv的函数是能够使用的,在通过numpy的相关的数学运算包转化一下数据格式就可以使用matlibplot等包显示输出图像了。

如果想解决上述的问题,就一定记得安装libgtk2.0-dev和pkg-config之后在cmake ---》make ---》 make install.Opencv就行了。

Question-2:

我们发现在安装libgtk2.0-dev的软件包的时候,很难安装成功,全是提示说安装包和其他的依赖的安装包存在版本不兼容的问题,如下图所示:

# apt-get install libgtk2.0-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation: The following packages have unmet dependencies:
libgtk2.0-dev: Depends: libgtk2.0-0 (= 2.20.0-0ubuntu4) but 2.20.1-0ubuntu2.1 is to be installed
Depends: libglib2.0-dev (>= 2.21.3) but it is not going to be installed
Depends: libpango1.0-dev (>= 1.20) but it is not going to be installed
Depends: libatk1.0-dev (>= 1.13.0) but it is not going to be installed
Depends: libcairo2-dev (>= 1.6.4-6.1) but it is not going to be installed
Depends: libx11-dev (>= 2:1.0.0-6) but it is not going to be installed
Depends: libxext-dev (>= 1:1.0.1-2) but it is not going to be installed
Depends: libxinerama-dev (>= 1:1.0.1-4.1) but it is not going to be installed
Depends: libxi-dev (>= 1:1.0.1-4) but it is not going to be installed
Depends: libxrandr-dev (>= 1:1.2.99) but it is not going to be installed
Depends: libxcursor-dev but it is not going to be installed
Depends: libxfixes-dev (>= 1:3.0.0-3) but it is not going to be installed
Depends: libxcomposite-dev (>= 1:0.2.0-3) but it is not going to be installed
Depends: libxdamage-dev (>= 1:1.0.1-3) but it is not going to be installed
E: Broken packages

将较新的库降级为满足依赖关系的库,按照提示逐步操作即可。

这里我们就需要使用如下的指令来完成安装:

sudo aptitude install libgtk2.0-dev

运行后会出现一大堆消息,给出第一个解决方案一般是保留这些库文件,让选择y/n/q?,这里选择“n”;然后会继续找解决方案,有时会超时找不到,点击y继续找,直到给出得解决方案是“降级”这些库文件,选择“y”,然后等待结束就完了。

这里我们看到提示:Setting up libgtk2.0-dev(2.24.25-3+deb8u2) ...

完成后可以再输入“sudo apt-get install libgtk2.0-dev”进行测试,出现已经安装对应得库文件,说明安装成功了。(此方法同样适用于安装opencv时其他不能正常安装的预备库文件)

   Finished!

Ubuntu16.04+Opencv3.3的安装教程的更多相关文章

  1. Ubuntu16.04 + cuda8.0 + GTX1080安装教程

    1. 安装Ubuntu16.04 不考虑双系统,直接安装 Ubuntu16.04,从 ubuntu官方 下载64位版本: ubuntu-16.04-desktop-amd64.iso . 在MAC下制 ...

  2. ubuntu16.04+Opencv3.4.0安装(slam版)

    本文记录ubuntu下安装opencv过程,步骤来自 opencv官网可以对照官网步骤:https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_inst ...

  3. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  4. Ubuntu16.04 LTS下apt安装WireShark

    Ubuntu16.04 LTS下apt安装WireShark 安装与配置 首先通过apt安装WireShark: $ sudo apt install wireshark 会同时安装许多的依赖包,其中 ...

  5. 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细

    公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...

  6. ubuntu16.04下sublime text3安装和配置

    ubuntu16.04下sublime text3安装和配置 2018年04月20日 10:31:08 zhengqijun_ 阅读数:1482 1.安装方法 1)使用ppa安装 sudo add-a ...

  7. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  8. Ubuntu16.04下,erlang安装和rabbitmq安装步骤

    文章来源: Ubuntu16.04下,erlang安装和rabbitmq安装步骤 准备工作,先下载erlang和rabbitmq的安装包,注意他们的版本,版本不对可能会导致rabbitmq无法启动,这 ...

  9. Ubuntu16.04+OpenCV3.2.0+Opencv_Contrib3.2.0安装

    为了学习slam,在ubuntu16.04系统上安装opencv3.2.0以及对应的opencv_contrib3.2.0 安装过程 下载 Github上下载有的时候比较慢,我这里分享了OpenCV3 ...

随机推荐

  1. python第一天,编写用户接口

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 流程图: 代码 #!/usr/bin/env python #-*- coding:utf-8 -*- #created b ...

  2. Android 目前最稳定和高效的UI适配方案

    Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解.刚好,近期准备对糗事百科Android客户端设计 ...

  3. STM32L476应用开发之四:触摸屏驱动与数据交互

    数据交互可以说是任何一台仪器都需要的功能.我们的便携式气体分析仪,需要人来操作和配置,所以触摸屏就是我们必然的一个选择.本次我们计划采用3.5寸显示屏,串口通讯. 1.硬件设计 前面我们实验了串行通讯 ...

  4. STM32L476应用开发之一:初次使用

    今天终于收到了期待已久的NUCLEO-F412ZG,感谢电子发烧友论坛!多年以来基本都是在STM32平台上做一些设计开发工作.但是低功耗的基本没用过,这次要做便携式设备才对这方面有所接触,正好这时电子 ...

  5. Confluence 6 数据库表-展现(Appearance)

    这部分存储了有关你 Confluence 的外观和布局使用的信息. decorator 使用自定义 Velocity 布局显示的自定义模板. https://www.cwiki.us/display/ ...

  6. 自执行匿名函数: (function() { /* code */ })();

    1,常见格式:(function() { /* code */ })(); 2,解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括 ...

  7. JavaScript利用键盘方向键(上下键)控制表格行选中

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. Redis简介与安装

    目录 Redis概述与安装使用 Redis概述与安装使用 Author:SimpleWu GitHub-redis Redis简介 Redis英语全称:( REmote DIctionary Serv ...

  9. javaWeb锁屏的简单实现

    简单介绍:需求上有个小功能,用户登录后点击用户名,可以点击锁屏,锁屏解除,需要输入正确的密码才能进入管理后台页面enheng(*/ω\*)(*/ω\*)(*/ω\*) 思路简介:其实刚看到要做锁屏,第 ...

  10. hiho1460 rmq模板题

    好久没做rmq的题了,今天写了一遍,感觉打表有点像区间dp /* 给定长为n的字符串,要求在字符串中选择k个字符, 选择的子系列字典序最小 因为选择k个字符,那么就是去掉n-k个字符 那么[1,n-k ...