本教程所有方法都来自互联网或者自己摸索,若有借鉴定会表明出处。(2012.10.24 更新)
最近要利用OpenCV做开发,并且要在linux环境下。想想自己一直用的Ubuntu是一个很不错的linux平台,安装快捷,解决问题方便(有社区)。而Eclipse又因为其强大的跨平台及开源特性,以及多编程语言环境的支持,所以Ubuntu+Eclipse 成为了多种组合里的首选。教程首先从Eclipse的安装开始:
一. Eclipse + CDT 的搭建
快捷键Ctrl + alt + T 召唤出终端 运行
sudo apt-get install eclipse
自动下载安装eclipse 集成开发环境(包括JDK),不过默认只有java的环境,因为OpenCV都是基于C/C++语言的,所以我们还要安装CDT。打开Eclipse -> Help -> Install New Software, 在Work with 的右边输入
cdt - http://download.eclipse.org/tools/cdt/releases/indigo
(其中最左边的cdt是自己取的名字,可以随意改,但是后面那个URL一定要正确) 截止今天,从源中得到的eclipse是indigo版,所以我们CDT也要选择indigo版的,输入后稍等片刻pengding中.....解析完毕得到下图,勾选CDT Main Features 就够了,然后一路点击Next.直至finish.
不一会功夫就自动安装好了,至此我们的eclipse里集成了C/C++的开发环境,即 Eclipse + CDT 环境。
二. G++ 及 OpenCV的安装
G++的安装同样很简单,快捷键Ctrl + alt + T 召唤出终端 运行
sudo apt-get install g++
OpenCV库的安装参考http://www.opencv.org.cn/index.php/Debian%E4%B8%8B%E5%AE%89%E8%A3%85中的方法,调试后发现只要这一句就够了
apt-get install libcv-dev libcvaux-dev libhighgui-dev
此时头文件已经安装在/usr/include/opencv 和 /usr/include/opencv2 (为什么要提这些呢?因为后面要用到!)
三. Eclipse CDT 和 OpenCV 双剑合璧
这一部分参考 http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html 因为是英文版的,把它本土化,方便大家。
1.同样快捷键Ctrl + alt + T 召唤出终端 运行 eclipse,召唤出拥有CDT的eclipse.
2. 依次打开 File -> New -> C/C++ Project(若没有,从project里找到 c/c++) 如下图
3.此时可以选择一个"Hello World"的工程,顺便取一个名字, 如我的"myfistopencv",点击finish.
4.将cpp中的代码替换为如下程序代码
1 #include <string> 2 #include <opencv2/opencv.hpp> 3 4 using namespace cv; 5 using namespace std; 6 7 int main() 8 { 9 string imagename = "lena.jpg"; 10 11 //读入图像 12 Mat img = imread(imagename); 13 14 //如果读入图像失败 15 if(img.empty()) 16 { 17 cout<<"read failed!"; 18 return -1; 19 } 20 //创建窗口 21 namedWindow("image",1); 22 23 //显示图像 24 imshow("image", img); 25 26 //等待按键,按键盘任意键返回 27 waitKey(); 28 29 return 0; 30 }
5.这个时候会报很多错,不要紧张,是因为eclipse还不知道include及library的位置,让我们告诉它。
首先指明 include:
打开 Project–>Properties。在C/C++ Build, 点击 Settings. 选择右侧 Tool Settings 标签(默认). 这里我们可以看到includes和library的信息
在 GCC C++ Compiler, 点击 Includes. 在 Include paths(-l) 添加我们的opencv的头文件所在地,即上文提到的 /usr/include/opencv 以及 /usr/include/opencv2 和/usr/include/opencv,如下图
再指明lib :
lib是要自己找的,依旧快捷键Ctrl + alt + T 召唤出终端,这次输入
pkg-config --libs opencv
会打印出所有的libs,应该是下面这些
opencv_core;opencv_imgproc;opencv_highgui;opencv_ml;opencv_video;opencv_features2d;opencv_calib3d;opencv_objdetect;opencv_contrib;opencv_legacy;opencv_flann
你可以全部导入,以免找不到。
找到 GCC C++ Linker,在右侧 First in Library search path (-L) 中加入这些库,因为我已经加分号了,所以可以直接导入,eclipse 会自动换行分开,不然就要一个一个手动输入。
OK,别忘了点apply!
这时候可能有人会碰到Binary not found等问题,Hint: 首先要按 ctrl+b build,再运行!就没有问题了!
至此环境就搭起来了,试试运行sample, 如果你没有lena.jpg的图的话,应该提示read failed,说明你的环境已经搭建成功了!是不是很快?
四.后记
本博文写的有些匆忙,可能有些小疏漏,请大家及时指出以便我及时更正!