以前做的win7上搭建opencv-qt文章:http://blog.csdn.net/jiebaoabcabc/article/details/17097765
今天闲来无事,来吧opencv移植到linux上玩玩,由于几月前做过win7上的opencv2.4.7移植,感觉信心满满,但是还是在移植过程中遇到了点问题。
下面我们来看看具体的安装过程:
安装包准备:
opencv-2.4.7.tar.gz http://opencv.org/ 建议下载最新版本for linux
cmake-2.8.12.1-Linux-i386.tar.gz http://www.cmake.org/cmake/resources/software.html
安装环境搭建:
opencv在ubuntu中正确运行,需要在make以前在ubuntu安装pkg-config和libgtk2.0-dev
所以我们要先将运行apt-getinstall libgtk2.0-dev
apt-get install pkg-config
cmake的安装:
cmake是我们编译安装opencv库的一个重要工具,它帮我们设定一些配置,用于生成用于编译安装的makefile,而且它可以通过界面进行配置,我感觉linux下的cmake比win上的更好用哎。
1.首先我们先解压cmake tar -zxvf cmake-2.8.12.1-Linux-i386.tar.gz -C/home/cmake/
2.添加环境变量 gedit /etc/profile
在最后添加 export PATH=$PATH: /home/cmake/cmake-2.8.10.2-Linux-i386/bin
更新配置 source /etc/profile
3.测试下cmake安装是否ok cmake --version
opencv的解压:
1.创建文件夹 #mkdir/home/opencv
2.解压 tar -zxvf opencv-2.4.7.tar.gz -C /home/opencv
3.创建文件夹(这里创建pc上运行的安装目录,arm上运行的安装目录)
cmake对opencv的配置:
这里主要配置编译器路径,安装路径,库的安装需要之类的。
1.运行cmake图形界面 #cmake-gui
2.sourcecode指的是源码根路径,就是解压得到的文件夹 OpenCV-2.4.7/
3.buildthe hinaries指的是生成makefile与待编译源码的路径 opencv-pv/
4.点击configure,这里配置编译器选项,默认选择Unix Makefiles -> Use default native compilers 先在pc上运行试试,就不用修改了。点击finish
5.配置自己需要的库和安装目录,buildtype键入Release,installprefix是opencv安装路 径,默认是在/usr/local下,我想修改成别的路径还没成功
如果想在qt上运行你的opencv,就要选上,这个版本的cmake在ubuntu里选择图案 竟然是叉叉。。。
6.再按下configure,没有红色说明配置ok(这里说明一下 我的qt是qt4,出现一下红字 不用理会,如果qt版本是qt5就需要在qt安装目录下一个个找出对应文件夹路径填上, 否则没法产生makefile)
7.点击generate,瞬间完成 提示Generating done说明cmake完成,产生了makefile
编译安装opencv:
1.cd到你填写的buildbinaries文件夹下,看到makefile后,运行make指令机子卡的 童鞋可以各忙各的了(顺便提醒一下,不想重新再编译一遍的童鞋一定要注意 libgtk2.0-dev的安装)
2.makeinstall安装安装完后可以在/usr/local/lib下看到编译好的opencv共享库。
3.登记库路径 gedit /etc/ld.so.conf.d/opencv.conf 自己创建配置文件
在文件内添加/usr/local/lib,然后运行命令ldconfig更新库配置
4.添加环境变量 gedit /etc/bash.bashrc 在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
退出后source /etc/bash.bashrc更新配置。
-----------------------------------------------------------------------------------------------------------------------------
到这里我们的opencv-qt环境已经搭建完毕了,接下来测试一下效果:
测试1: 运行opencv源码中自带的人脸识别测试例程
1. cd /OpenCV-2.4.7/samples/c
2. ./build_all.sh 编译测试程序
3. ./facedetect--cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"--scale=1.5 lena.jpg 如果成功则显示图片
测试2: 在qt上运行个测试程序
1.打开qt,创建一个空白项目,在工程构建文件中添加opencv的头文件和库路径
INCLUDEPATH+=/home/opencv/opencv-2.4.7/include/opencv \ /home/opencv/opencv-2.4.7/include/opencv2 \ /home/opencv/opencv-2.4.7/include LIBS+= /usr/local/lib/libopencv*
2.新建一个c++源文件添加到工程中,贴上下面的代码
#include"cv.h" #include"cxcore.h" #include"highgui.h" int main() { //声明IplImage指针 IplImage *pImg; //载入图片 pImg=cvLoadImage("/home/project/sword_art_online22.jpg",1); //图片路径,小心 //创建窗口 cvNamedWindow("Image",1); //显示图像 cvShowImage("Image",pImg); //等待按键 cvWaitKey(0); //销毁窗口 cvDestroyWindow("Image"); //释放图像 cvReleaseImage(&pImg); return 0; }
结果显示出我的爱图: