[置顶] Ubuntu16.04+opencv3.3.0的安装配置说明
系统环境:
Linux Ubuntu 16.04
[GCC 5.4.0 20160609] on linux2
之前的教程中我们已经安装了做机器学习需要使用的框架TensorFlow,笔者本科阶段的专业是信息处理,主攻机器视觉方向。那么谈到机器视觉,最常见的框架就是opencv了。
OpenCV是一个专业的计算机视觉库,其中包括了许多计算机视觉中十分重要的内容。在samples中,他列举了许多如摄像机标定,彩色追踪,霍夫检测,面部识别,人脸识别等十分有趣的例程,方便大家使用。
下面进入Linux和Opencv配置教程。
第一步:到opencv的官方网站上下载安装包并且解压。
(这里笔者要和大家聊聊关于版本的问题。OpenCV 2.0+版本中仍保留了现在opencv3.0+的nonfree库中的许多函数。笔者这里仍以最新版本的opencv作为配置范例。OpenCV在Github上有源码,我们这里选择源码安装)
第二步:build-essential 软件包,会下载依赖的软件包,安装gcc/g++/gdb/make 等基本编程工具,组成开发环境。还有辅助依赖项,Ubuntu 下可直接打开terminal输入如下四条命令:
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 pkg-config
至此,安装opencv之前的准备工作,我们已经全部就绪。
第三步:opencv的安装和编译
笔者在这里推荐采用cMake安装方式进行安装。
我们将路径cd到有CMakeLists.txt这个文件夹下。我们可以在下载并解压后的opencv包中找到这一文件,图形界面下双击opencv解压后文件夹,就能看到该文件了,我们就cd到这个路径即可。terminal中输入:
cmake .
就能很快找到该文件,当然网上一些教程中写到在这一步配置参数,笔者建议也如此可以更方便。在terminal中输入:
cd opencv-2.4.9
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
即可完成该步骤。
cMake安装启动!!terminal中输入如下命令:
make
然后巴拉巴拉之后再在terminal中输入:
sudo make install
恩,安装开始!会看到屏幕出现一大堆文字巴拉巴拉巴拉……
到最后,显示安装成功!可惜此时还不能用。装过windows下的opencv的朋友们可能知道配置是最麻烦的。但是linux下难度就小了很多。
首先,terminal中敲入如下命令:
gedit /etc/ld.so.conf
在弹出的窗口中添加如下一段文字:
/usr/local/lib
然后使得配置生效:
sudo ldconfig
然后再terminal中写入:
sudo gedit /etc/bash.bashrc
之后我们在弹出的窗口中添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
到此,安装和配置任务完成!此时我们可以欢快地敲代码了。又是熟悉的配方,又是熟悉的味道,我们的opencv老大又回来啦!
第四步:运行与测试
opencv在linux中可以直接被g++编译,因为我们都装好了。
那么这时候你可能在好多教程中都看到他们会让你费了半天劲找什么samples/c什么build之类的shell脚本。而实际上,可能是因为笔者笨并没有找到什么之类的脚本。所以我们直接用samples里的c++文件进行测试即可。我们知道这个samples中有好多代码不能直接running而是需要添加参数或者路径之类的,修改代码有一个很快的办法,ubuntu中提供给大家gedit这个东西,很是方便,我们可以直接用cd到代码文件中,然后在terminal输入gedit xxx.cpp,就可以进行修改了。
笔者这里可以告诉大家samples中有几个文件可以不用修改直接跑。像camshiftdemo.cpp ,edge.cpp之类都可以,随便跑一个吧,笔者这里调用了edge.cpp文件。那么如何调用呢?下面请牢记这条命令,亲测有效,其他版本不保证:
g++ edge.cpp `pkg-config opencv --cflags --libs` -o test
注意:pkg-config和它的参数需要被包含在引号里,而且这个引号是键盘左上角的那个
`
那么输入完之后你的代码就可以运行了!!我们可以看到是个canny检测。
空说无益,上个图看看运行结果:
恩,很漂亮!
到此,全部安装和测试结束。
-----------------------------------------------
- 编译出错的处理
如果执行 cmake时候出现如下错误信息
Shell
1
2
3
4
5
6
7
8
9
10
|
CMakeErroratCMakeLists.txt:11(message):
FATAL:In-sourcebuildsarenotallowed.
Youshouldcreateseparatedirectoryforbuildfiles.
--Configuringincomplete,errorsoccurred!
|
则应该是在代码根目录下直接执行过 cmake,导致根目录下生成了CMakeCache.txt,需要删除 CMakeCache.txt再次执行编译即可。
参考:
http://www.mobibrw.com/2017/7393
http://blog.csdn.net/Function_K/article/details/77899546
[置顶] Ubuntu16.04+opencv3.3.0的安装配置说明的更多相关文章
- Ubuntu16.04+OpenCV3.2.0+Opencv_Contrib3.2.0安装
为了学习slam,在ubuntu16.04系统上安装opencv3.2.0以及对应的opencv_contrib3.2.0 安装过程 下载 Github上下载有的时候比较慢,我这里分享了OpenCV3 ...
- ubuntu16.04+Opencv3.4.0安装(slam版)
本文记录ubuntu下安装opencv过程,步骤来自 opencv官网可以对照官网步骤:https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_inst ...
- Ubuntu16.04 + gtx1060 + cuda8.0 + cudnn5.1 + caffe + Theano + Tensorflow
参考 ubuntu16.04+gtx1060+cuda8.0+caffe安装.测试经历 ,细节处有差异. 首先说明,这是在台式机上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双 ...
- ubuntu16.04 + CUDA 9.0 + opencv3.3 安装
安装前的准备 CUDA 9.0 安装,可以参看Ubuntu16.04 + cuda9.0 + cudnn7.1.4 + tensorflow安装 opencv 3.3.0 下载 ippicv_2017 ...
- ubuntu16.04在GTX1070环境下安装 cuda9.1
设备要求 系统:Ubuntu16.04 显卡:GTX 1070 驱动:nvidia系列,显卡驱动的版本必须大于等于cuda的sh文件名里面的版本号 驱动可从 此处 下载,我已经整理好了 检查安装驱动 ...
- Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...
- 【软件安装与环境配置】ubuntu16.04+caffe+nvidia+CUDA+cuDNN安装配置
前言 博主想使用caffe框架进行深度学习相关网络的训练和测试,刚开始做,特此记录学习过程. 环境配置方面,博主以为最容易卡壳的是GPU的NVIDIA驱动的安装和CUDA的安装,前者尝试的都要吐了,可 ...
- 在Ubuntu16.04.4和Windows10上安装jdk
在Ubuntu16.04.4和Windows10上安装jdk 一.在Ubuntu16.04.4上安装jdk 1.下载jdk安装包 首先我们在oracle官网上下载jdk-8u161-linu ...
- 在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法
在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法,我刚开始因为不太会用linux命令,所以一直依赖于python 的pip命令,可是怎么都 ...
随机推荐
- Gym - 100283F Bakkar In The Army(二分)
https://vjudge.net/problem/Gym-100283F 题意: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 .... 给出这样的序列,然后给出一个n,计算从1 ...
- package 'yaml-cpp' not found
-- Using these message generators: gencpp;genlisp;genpy -- checking for module 'yaml-cpp' -- package ...
- js的数组与对象关系
有的时候总犯糊涂,不理解对象和数组的关系,转载一篇文章,深刻记忆一下 http://hi.baidu.com/samdan/item/05179313d1ee4b9e99ce3371 比如有一个数组a ...
- CSS 列表样式详解
CSS列表用于前端的列表排列. CSS列表属性作用如下: 设置不同的列表项标记为有序列表 设置不同的列表项标记为无序列表 设置列表项标记为图像 列表 在HTML中,有两种类型的列表: 无序列表 - 列 ...
- Android之第三方平台实现多平台分享操作
开发中常常遇到分享操作,当用到多种分享时,如:QQ,微信,微博,短信等,可以借助第三方平台来完成,此博客主要借助mob平台来完成相关操作,当然也可以借助其他平台,如友盟等. 先来看看效果图: 如图看出 ...
- js做小数运算精度问题
当js做小数运算时存在bug,大概是因为二进制和十进制转换之间的关系. bug如图 解决方案 1.运算结果后,乘以100再除以100.网上推荐这种方法但是乘以1000再除以1000依然存在精度问题 2 ...
- Sublime 中文标题乱码
---title:Sublime 中文标题乱码--- #markdown语法(非Github Flavored) #解决办法: 在用户设置里添加一项,强制不根据 dpi 缩放dpi_scale: 1. ...
- UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他 ...
- HDU 4068
http://acm.hdu.edu.cn/showproblem.php?pid=4068 暴力枚举两个全排列,犯了若干错误,以此为鉴 #include <iostream> #incl ...
- 图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)
博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...