[操  作  系  统]    Ubuntu 14.04 LTS

[OpenCV版本]      3.0.0-beta

[Eclipse 版 本]    3.8.1

需要知识:

  • Linux系统shell命令基础
  • 编译原理基础知识,预编译->编译->汇编->链接
  • make 、cmake知识
  • IDE使用经验
  • gcc,g++编译器知识

一、编译安装opencv3.0

1. 准备环境

  直接编译安装opencv一般是会报错的,有很多依赖工具需要先安装。主要是:cmake, build-essential, pkg-config, python-dev, python-numpy等,视自己情况而定。 

  $ sudo apt-get install build-essential cmake libopencv-dev libgtk2.-dev pkg-config python-dev python-numpy

2. 下载opencv3.0源码

  直接去opencv.org(github) 上下载linux源码包:

  $ wget https://github.com/Itseez/opencv/archive/3.0.0-beta.zip

3. 解压组织、编译、安装

  解压文件,新建一个文件夹用于安放编译结果,然后安装(选择安装在/usr/local下面)

  $ unzip opencv-3.0.-beta.zip
  $ cd opencv-3.0.-beta
  $ mkdir release
  $ cd release
  $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON
      -D WITH_QT=ON -D WITH_OPENGL=ON .. //注意CMakeList.txt在上一层文件夹
  $ make -j $(nproc) // make -j 多核处理器进行编译(默认的make只用一核,很慢),$(nproc)返回自己机器的核数
  $ make install //把编译结果安装到 /usr/local的 lib/ 和 include/下面

4. 环境配置

  可编辑文本配置部分:/etc/ld.so.conf.d/ 添加 opencv.conf 文件,记录库安装位置;更新配置

  $ cd /etc/ld.so.conf.d
  $ sudo vi opencv.config
  // insert "/usr/local/lib" :q
  $ sudo ldconfig

  有的地方说,需要配置/etc/bash.bashrc 中PKG_CONFIG_PATH 环境变量,貌似不需要。

  (貌似,上面的opencv.conf都不用配置。只要 make install 就会在/usr/local/lib/pkgconfig下面产生opencv.pr的包含、链接配置)。

  检查包含、链接配置是否正确:

  $ pkg-config opencv --cflags --libs
  $ -I/usr/local/include/opencv -I/usr/local/include /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so     /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgcodecs.so /usr/local/lib/libopencv_imgproc.so /usr/local/l    ib/libopencv_ml.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_shape.so /usr/local/lib/libopencv_stitch    ing.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videoio.so /usr/local/l    ib/libopencv_videostab.so

二、使用opencv库

1. 命令行形式

  直接编写C 或者C++ 程序,然后分别用gcc,g++编译器生成可执行程序。

  1) C程序版:

  #include <highgui.h>

  int main(int argc, char **argv)
  {
   IplImage* img = cvLoadImage(argv[],CV_LOAD_IMAGE_COLOR);
   cvNamedWindow("Image_show",CV_WINDOW_AUTOSIZE);
   cvShowImage("Image_show",img);
   cvWaitKey();
   cvReleaseImage(&img);
  cvDestroyWindow("Image_show");
   return ;
  }

  编译过程:

  $ gcc test.c -o test `pkg-config opencv --cflags --libs`

  2) C++程序版:

  #include <opencv2/opencv.hpp>
  using namespace cv;   int main( int argc, char** argv )
  {
   Mat image;
   image = imread( argv[], );
   if( argc != || !image.data )
   {
   printf( "No image data \n" );
   return -;
   }
   namedWindow( "Display Image", WINDOW_AUTOSIZE );
   imshow( "Display Image", image );
   waitKey();
   return ;
  }

  编译过程:  

  $ g++ first.cpp -o first `pkg-config opencv --cflags --libs`     // 包含、链接参数一定要放在后面

2. CMake运行形式

  cmake 是先将程序所需的依赖、原料组织起来,产生Makefile,然后在又make来编译生成可执行程序。最重要的就是编写CMakeList.txt文件。以上文C++程序为例,CMakeList.txt为:

  cmake_minimum_required(VERSION 2.8)
  project( first )
  find_package( OpenCV REQUIRED )
  add_executable( first frist.cpp )
  target_link_libraries( first ${OpenCV_LIBS} )

  然后,CMake,再make: 

  $ cmake .
  $ make
  $ ./first

3. IDE开发工具

  在IDE工具(如VS,Eclipse)中利用opencv库,和以上两种方法考虑的地方一样,都是要配置好include 和 lib 部分。

  具体Ubuntu下用Eclipse的方法,下面继续。

三、eclipse下C++开发环境

1. 安装eclipse

  Ubuntu下安装很简单,直接在software center里就有。或者直接命令行apt-get install

2. 配置C++开发环境

  打开eclipse,在help 菜单下选择 Install new software。打开的install对话框中,work with下拉菜单选择Indigo Update Site - http://download.eclipse.org/releases/indigo/源。网络刷新后:

  1) Collaboration中选择Mylyn Context Connector:C\C++ Development组件,然后安装,重启eclipse;

  2) 继续回到install对话框,在Programming Language中选择C\C++相关的组件,如Development Tools,Development Tools SDK,CDT Visual C++ Support等。

  安装好以上组件之后,就可以在eclipse里面新建C++工程。

3. opencv实践

  1) 新建一个空的C++工程,然后添加source folder,source file;将上文的C++读图代码拷贝进去。这时肯定会提示有很多问题,编译肯定出错。

  2) 接下来就是配置好包含文件和链接库。右击project explorer里面的工程,打开properties,点开C\C++ Build选项,再点击设置Setting。

    a) 设置包含include。在GCC C++ Compiler下面的includes里面添加include path:/usr/local/include,/usr/local/include/opencv,/usr/local/include/opencv(视自己的代码选择include,保险的话,三个都设置上)。

    b) 设置链接库。 在GCC C++ Linker下面的Libraries里面,先添加search path为:/usr/local/lib;然后逐个在Libraries中添加opencv_core, opencv_highgui, opencv_imgproc, opencv_imgcodes(貌似是新多出来的一个,不加要报错)。

  3) 配置完毕,project --> Build All。另外说明,如果用IDE里面的属性来添加程序参数,文件路径名最好用绝对路径(其当前路径应该为你的项目一级目录,跟据这个设相对路径亦可)。

Reference:

  [1] Rodrigo Berriel's website: http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/

  [2] Using OpenCV with Eclipse: http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html

ubuntu14.04下配置使用openCV3.0的更多相关文章

  1. 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)

    在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...

  2. Ubuntu14.04 安装配置Hadoop2.6.0

    目前关于Hadoop的安装配置教程书上.官方教程.博客都有很多,但由于对Linux环境的不熟悉以及各种教程或多或少有这样那样的坑,很容易导致折腾许久都安装不成功(本人就是受害人之一).经过几天不断尝试 ...

  3. Ubuntu14.04下配置固定IP

    实验室需要构建静态网站作为个人知识管理工具,每个人要求都有属于自己的静态网站进行知识积累和交流.但是实验室的路由有时候会关闭,重启后给每台机器重新分配ip,因此为了方便访问每台主机,需要设置静态ip. ...

  4. 一、Ubuntu14.04下安装Hadoop2.4.0 (单机模式)

    一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...

  5. ubuntu14.04下配置Java环境以及安装最新版本的eclipse

    首先是配置JDK 步骤一:下载最新版本的JDK,链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html 步骤二:首先 ...

  6. Ubuntu14.04下安装redis-3.2.0以及开机自启动

    去官网下载Redis-3.2.0.tar.gz,将redis-3.2.0.tar.gz放入/opt目录下 解压redis-3.2.0.tar.gz xiaoyao@xiaoyao-virtual-ma ...

  7. Ubuntu14.04下安装Hadoop2.4.0 (单机模式)

    一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...

  8. 在Ubuntu14.04下配置Samba 完成linux和windows之间的文件共享

    在Windows和Linux之间传递文件可以使用Samba服务.下面是安装步骤: 1. 安装Samba. sudo apt-get install samba 2. 修改配置文件 sudo gedit ...

  9. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

随机推荐

  1. 使用POSIX正则库匹配一行中多个结果

    正则匹配与正则表达式是什么东西我就不说了,在这里说下POSIX这个c语言正则库在对字符串进行正则匹配时取出多个结果的问题. 首先简单说明下POSIX正则库的几个函数和使用方法 第一个函数:int re ...

  2. (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

      深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...

  3. 【转】Python 中map、reduce、filter函数

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  4. protobuf 数据解析的2种方法

    方法1: message person{required int32 age = 1;required int32 userid = 2;optional string name = 3;} mess ...

  5. sqlserver 跨服务器访问数据

    需求:两个一模一样的表,分别分布在两个服务器的数据库上,现在要在一个表中,查看这两个表的内容,并让Id排序 1:在本地数据库查询分析器中,运行以下两段语句: --创建链接服务器 exec sp_add ...

  6. ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践

    目录: 一.什么是Proftpd? 二.Proftpd的官方网站在哪里? 三.在哪里下载? 四.如何安装? 1)系统用户的配置+权限控制 2)虚拟用户的配置+权限控制   一.什么是Proftpd? ...

  7. 微信公众平台开发教程(八)Session处理

    微信公众平台开发教程(八)Session处理 在微信窗口,输入的信息有限,我们需要将一些信息分多次请求. 比如:在进行用户绑定时,我们需要输入用户的相关信息,比如:用户名.密码,或者姓名.电话号码,服 ...

  8. 也谈谈规范JS代码的几个注意点

    也谈谈规范JS代码的几个注意点 写JS代码差不多也有两年了吧,从刚开始的“初生牛犊不怕虎”乱写一通到后来也慢慢知道去规范一下自己写的代码.这种感觉就像是代码是你的作品,你希望它保持一份不仅干净而且也优 ...

  9. [Spring MVC] - SpringMVC的各种参数绑定方式

    SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...

  10. python中获取当前所有的logger

    获得当前所有logger的列表的程序如下: import logging for name in logging.Logger.manager.loggerDict.keys(): logger = ...