[学习OpenCV攻略][002][Ubuntu下OpenCV安装]
配置环境
操作系统 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安装]的更多相关文章
- [学习OpenCV攻略][017][ARM9下移植OpenCV]
安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...
- [学习OpenCV攻略][016][RedHat下安装OpenCV]
安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...
- [学习OpenCV攻略][001][Ubuntu安装及配置]
root登入配置 1.sudo passwd root 2.su - root 3.vim /etc/lightdm/lightdm.conf [SeatDefaults] user-session= ...
- OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现
# OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...
- 基于opencv网络摄像头在ubuntu下的视频获取
基于opencv网络摄像头在ubuntu下的视频获取 1 工具 原料 平台 :UBUNTU12.04 安装库 Opencv-2.3 2 安装编译运行步骤 安装编译opencv-2.3 参 ...
- Ubuntu下OpenCV不能被某个python版本识别
Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...
- Ubuntu下opencv的安装及IDEA开发配置
Ubuntu下opencv的安装及IDEA开发配置 环境配置 这篇博客主要介绍Ubuntu下opencv的安装编译,以及IDEA对opencv进行Java开发的环境配置 安装opencv 首先安装o ...
- OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建
# OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-hom ...
- Torch7在Ubuntu下的安装与配置
Torch7的本系列教程的主要目的是介绍Torch的入门使用.今天首先分享一下Torch7的安装.(在Ubuntu14.04安装torch7) 为什么选择Torch Torch的目标是在建立科学算法的 ...
随机推荐
- 序列化之对象,字符串,byte数组,XML之间的转换(一)
工作一年多了,越来越感到自己不能这样一直下去,在最好的青春里面却已经死了.被时间消磨了意志,被工作杀死了精神.我想,我只要活着,我就要去不断的要求自己,不断的去追求更高的山峰. 放眼四周,有趣的灵魂越 ...
- 如何去除本地文件与svn服务器的关联
1.每个目录逐个去删除.svn文件夹 .svn属于隐藏文件夹,可通过操纵Windows文件资源管理器使隐藏文件可视,删除该文件,即可. 2.首先建立一个新文件,文件命名为remove-svn-fold ...
- Struts2-整理笔记(五)拦截器、拦截器配置
拦截器(Interceptor) 拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制. 拦截器的优点 简化了Action的实现 ...
- 摄像头脸部识别 (1)opencv 抓取视频数据并保存
摄像头脸部识别 (1)opencv 抓取视频数据并保存 基于python 和 opencv 3.4.0 (兼容 opencv 2.X 参考注释),详细如代码 import numpy as np im ...
- Python学习_13_继承和元类
继承 继承的含义就是子类继承父类的命名空间,子类中可以调用父类的属性和方法,由于命名空间的查找方式,当子类中定义和父类同名属性或者方法时,子类的实例调用的是子类中的属性,而不是父类,这就形成了pyth ...
- 安卓电量优化之WakeLock锁机制全面解析
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.WakeLock概述 wakelock是一种锁的机制,只要有应用拿着这个锁,CPU就无法进入休眠状态,一直处于工作状态.比如,手机屏幕在屏幕关闭 ...
- [Spark内核] 第36课:TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等
本課主題 通过 Spark-shell 窥探程序运行时的状况 TaskScheduler 与 SchedulerBackend 之间的关系 FIFO 与 FAIR 两种调度模式彻底解密 Task 数据 ...
- Markdown 常用语法
1.标题 # 一级标题 ## 二级标题 ### 三级标题 2.字体 *斜体* **粗体** ~~删除线~~<u>下划线</u> 3.引用 > 引用文字 4.无序列表 - ...
- windows 多任务与进程
多任务,进程与线程的简单说明 多任务的本质就是并行计算,它能够利用至少2处理器相互协调,同时计算同一个任务的不同部分,从而提高求解速度,或者求解单机无法求解的大规模问题.以前的分布式计算正是利用这点, ...
- python py2与py3的编码问题
一:什么是编码 将明文转换为计算机可以识别的编码文本称为"编码".反之从计算机可识别的编码文本转回为明文为"解码". 那么什么是明文呢,首先我们从一段信息说起, ...