ubuntu14.04下配置使用openCV3.0
[操 作 系 统] 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的更多相关文章
- 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)
在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...
- Ubuntu14.04 安装配置Hadoop2.6.0
目前关于Hadoop的安装配置教程书上.官方教程.博客都有很多,但由于对Linux环境的不熟悉以及各种教程或多或少有这样那样的坑,很容易导致折腾许久都安装不成功(本人就是受害人之一).经过几天不断尝试 ...
- Ubuntu14.04下配置固定IP
实验室需要构建静态网站作为个人知识管理工具,每个人要求都有属于自己的静态网站进行知识积累和交流.但是实验室的路由有时候会关闭,重启后给每台机器重新分配ip,因此为了方便访问每台主机,需要设置静态ip. ...
- 一、Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...
- ubuntu14.04下配置Java环境以及安装最新版本的eclipse
首先是配置JDK 步骤一:下载最新版本的JDK,链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html 步骤二:首先 ...
- 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 ...
- Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...
- 在Ubuntu14.04下配置Samba 完成linux和windows之间的文件共享
在Windows和Linux之间传递文件可以使用Samba服务.下面是安装步骤: 1. 安装Samba. sudo apt-get install samba 2. 修改配置文件 sudo gedit ...
- ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...
随机推荐
- MxNet下训练alexnet(一)
1.图像经过工具包中的 make_lsit im2rec 转换为可调用各式.rec,.bin都可以 2.然后使用train_imageXXXX进行训练,参数需要对应 3.利用保存的模型进行估计,测试 ...
- JS运动基础(四) 碰撞运动
碰撞运动撞到目标点,速度反转无重力的漂浮Div速度反转滚动条闪烁的问题过界后直接拉回来 加入重力反转速度的同时,减小速度纵向碰撞,横向速度也减小横向速度小数问题(负数) <!DOCTYPE HT ...
- linux下安装memcache(php版本5.3)
1.安装之前需要的准备:所需软件 libevent-1.4.6这个版本网上没找到,所以安装最新的版本libevent-2.0.22 libevent-1.4.6-stable.tar.gz (http ...
- 编写更好的jQuery代码的建议(share)
留个备份! 原文链接: Mathew Carella 翻译: 伯乐在线- yanhaijing译文链接: http://blog.jobbole.com/52770/ 讨论jQuery和javas ...
- Linux学习方法
应该如何提问? 先要尝试自己解决 - 帮助 - 文档 - 示例 提问的智慧 - 问题详尽 - 贴图
- Linux字符界面的优势
优势一:字符界面占用的系统资源更少,更加适合服务器 优势二:字符界面减少了出错.被攻击的可能性(一.二决定了服务器一般不装图形界面,安全稳定优先)
- 修改Apache的最大连接数
Apache的最大连接数,默认为256个. 修改apache的最大连接数,方法如下: 一:先修改./apache/conf/httpd.conf文件. # vi httpd.conf 将“#Inclu ...
- CentOS 关闭防火墙和selinux
1)关闭防火墙(每个节点) [Bash shell] 1 2 service iptables stop chkconfig iptables off 2)关闭selinux(重启生效) [Bash ...
- java设计6大设计原则
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Angular2.0-组件
截止到目前为止,Angular2.0完成了其alpha-32版本的开发,新的版本还在迭代开发当中,这其中有个问题,就是每个版本相比于以前的版本都会有一些改动,包括API方面的修改,这会导致很多基于以前 ...