配置环境

操作系统 Ubuntu 12.04

OpenCV版本 opencv-1.0.0

学习书籍 《学习OpenCV》

Liunx软件安装方法主要有3种:

1.编译安装,也就是通过编译源代码来安装,需要配置编译源代码的环境来编译源代码

2.apt-get/yum 软件源安装,通过网络的软件源来进行安装,会自动下载相关软件源

3.deb/rpm 安装包来安装,可以通过下载安装包来进行离线安装,有时会需要下载相关软件包

Ubuntu下OpenCV的apt-get安装方法

1.apt-get update   更新软件源

2.apt-cache search opencv  搜索opencv相关的软件源,学习opencv-1.0.0版本需要安装如下的软件源:

libcv-dev - development files for libcv

libcv - computer vision library

libcvaux-dev - development files for libcvaux

libcvaux - computer vision extension library

libhighgui-dev - development files for libhighgui

libhighgui - computer vision GUI library

3.apt-get install libcv libcvaux libhighgui

支持OpenCV的动态运行库,会根据版本号有所不同,安装最新版本即可

4.apt-get install libcv-dev libcvaux-dev libhighgui-dev

开发相关的工具包,直接安装即可

5.g++ test.c `pkg-config opencv --libs --cflags` -o test   测试是否能编译opencv编写的程序。需要注意的是test.c需要在`pkg-config opencv --cflags --libs`前面,否则会找不到头文件

6.vim Makefile   编写Makefile文件来简化编译过程

CFLAGS = `pkg-config --cflags opencv`
LIBS = `pkg-config --libs opencv` % : %.c
g++ $^ $(CFLAGS) $(LIBS) -o $@
% : %.cpp
g++ $^ $(CFLAGS) $(LIBS) -o $@

说明:

1.gcc和g++的区别:

但在编译阶段,g++会自动调用gcc,但gcc命令不能自动和c++程序使用的库链接,所以在链接c++程序时需要用g++。对于编译链接c程序,gcc和g++是等价的,但在编译链接c++程序时需要用g++。

2.`pkg-config opencv --libs --cflags`

在/lib和/usr/lib和/usr/local/lib里有许多相关的头文件和库文件,可以通过-l和-L命令在编译时来引用放在这些目录下的头文件和库文件。当引用的文件很多时,可以使用生成链接参数的程序xxx-config,一般放在/usr/bin目录下。在编译链接程序时直接加上`xxx-config opencv --cflags --libs`就可以引用相关的头文件和库文件了。需要注意的是`不是单引号而是1键左边的那个符号,引用要放在源文件后面否则会产生找不到函数的错误。--cflags表示引用xxx-config配置文件中的头文件,--libs表示引用xxx-config配置文件中的库文件

OpenCV forever,开始享受OpenCV吧!

参考:

1.http://wiki.opencv.org.cn/index.php/Debian%E4%B8%8B%E5%AE%89%E8%A3%85

2.http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

3.http://stackoverflow.com/questions/9870297/makefile-to-compile-opencv-code-in-c-on-ubuntu-linux

[学习OpenCV攻略][002][Ubuntu下OpenCV安装]的更多相关文章

  1. [学习OpenCV攻略][017][ARM9下移植OpenCV]

    安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...

  2. [学习OpenCV攻略][016][RedHat下安装OpenCV]

    安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...

  3. [学习OpenCV攻略][001][Ubuntu安装及配置]

    root登入配置 1.sudo passwd root 2.su - root 3.vim /etc/lightdm/lightdm.conf [SeatDefaults] user-session= ...

  4. OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现

    # OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...

  5. 基于opencv网络摄像头在ubuntu下的视频获取

     基于opencv网络摄像头在ubuntu下的视频获取 1  工具 原料 平台 :UBUNTU12.04 安装库  Opencv-2.3 2  安装编译运行步骤 安装编译opencv-2.3  参 ...

  6. Ubuntu下OpenCV不能被某个python版本识别

    Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...

  7. Ubuntu下opencv的安装及IDEA开发配置

    Ubuntu下opencv的安装及IDEA开发配置 环境配置  这篇博客主要介绍Ubuntu下opencv的安装编译,以及IDEA对opencv进行Java开发的环境配置 安装opencv 首先安装o ...

  8. OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建

    # OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-hom ...

  9. Torch7在Ubuntu下的安装与配置

    Torch7的本系列教程的主要目的是介绍Torch的入门使用.今天首先分享一下Torch7的安装.(在Ubuntu14.04安装torch7) 为什么选择Torch Torch的目标是在建立科学算法的 ...

随机推荐

  1. NOIP2002 字符变换

    啊本来以为2002的题应该会比较友善于是很naive地像模拟一样用着stl乱玩结果死也过不了最后一个点qaq 心情很悲痛于是为了解放自我 #include<iostream> #inclu ...

  2. bzoj 3653 [湖南集训]谈笑风生

    题目描述 设 T 为一棵有根树,我们做如下的定义: • 设 a 和 b 为 T 中的两个不同节点.如果 a 是 b 的祖先,那么称"a 比 b 不知道高明到哪里去了". • 设 a ...

  3. ab返回结果参数分析

    Server Software    返回的第一次成功的服务器响应的HTTP头.Server Hostname    命令行中给出的域名或IP地址Server Port    命令行中给出端口.如果没 ...

  4. 关于java字节流的read()方法返回值为int的思考

    我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐 等文件).问题是为什么字节流中定义的read()方法返回值为 ...

  5. mysql zip 版安装

    http://jingyan.baidu.com/article/8cdccae946133f315513cd6a.html

  6. 细说MyEclipse调试

     在程序出现问题时,我们需要找到并解决掉这些恼人的Bug,才能使程序顺利的运行下去.但是,当代码很多,程序很大的时候,找起来就很麻烦. 所以,我们需要借助工具——Eclipse/MyEclipse中的 ...

  7. Android中Handler的消息处理机制以及源码分析

    在实际项目当中,一个很常见的需求场景就是在根据子线程当中的数据去更新ui.我们知道,android中ui是单线程模型的,就是只能在UI线程(也称为主线程)中更新ui.而一些耗时操作,比如数据库,网络请 ...

  8. vue 全局插槽 全局插座

    场景: slot 能够让父组件内容插入到子组件中,但是子孙组件不能够使用slot直接插入内容.在弹窗的时候,全屏弹窗需要直接在组件最上层显示,如果父组件级别不够,弹出就可能不是全屏的. 知识点: 1: ...

  9. JQuery基本语法(部分)

    1.jQuery介绍 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScrip ...

  10. Git-分布式版本控制系统(一)

    Git可以在Linux.Unix.Mac和Windows Git 的安装 mac [xcode, 菜单"Xcode"->"Preferences",在弹出 ...