参考blog
http://www.openhw
.org/bbs/article_1156_538517.html
说明:操作系统ubuntu 12.04 desktop LTS
Qt 是C++图行用户界面开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt易于扩展,并且允许组件编程, 它可以运行在Windows,Mac OS X, Unix,Linux。
OpenCV是计算机开源视觉库可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
1.前期准备
下载OpenCV.书上以2.3.1版本为例,为保持一致性,采用OpenCV2.3.1。官方下载地址
http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2/download
安装cmake
sudo apt-get install cmake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。OpenCV使用cmake进行makefile的创建。
安装qtcreator
sudo apt-get install qtcreator
2.安装
将OpenCV包解压到用户目录下,得到opencv文件夹
cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
(注意“..”前有空格)
make
等待大概十分钟make完成
sudo make install
至此opencv库安装到了/usr/local/lib目录下,重启电脑,或者执行sudo ldconfig
(关于ldconfig:ubuntu把在开机时所有库文件装入到缓存,这样避免每次使用链接库都需装载,提高系统的效率,ldconfig命令就是重新装载,可通过ldconfig -v查看已经在缓存里的库。)
3.QT4+OpenCV组合配置示例
下面就可以使用QT和OpenCV进行开发了。
打开QTcreator新建项目,添加头文件,源文件及其代码(如下,示例项目在附件里也有)
//opencv_example.h
#ifndef OPENCV_EXAMPLE_H
#define OPENCV_EXAMPLE_H #include <QtGui/QMainWindow> #include <QtGui> #include "cv.h" #include "highgui.h" class OpenCV_Example : public QMainWindow { Q_OBJECT public: OpenCV_Example(); QPushButton *b1; IplImage *img; public slots: void slot_imgshow(); }; #endif // OPENCV_EXAMPLE_H
///opencv_example.cpp
#include "opencv_example.h" OpenCV_Example::OpenCV_Example() { setGeometry(100,100,100,100); b1 = new QPushButton("Show Image",this); connect(b1,SIGNAL(clicked()), this, SLOT(slot_imgshow())); } void OpenCV_Example::slot_imgshow() { QMessageBox::information(this,"title","Hello this is popup"); img = cvLoadImage("/home/guo/OpenCV_Example/OpenCV_Example/21.jpg",1);//要打开的图片 //create a new window cvNamedWindow("Window", 1); //display the image in the window cvShowImage("Window", img); //wait for key to close the window cvWaitKey(0); cvDestroyWindow( "Window" ); //destroy the window } 在main中编写: #include <QtGui/QApplication> #include "opencv_example.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); OpenCV_Example w; w.show(); return a.exec(); } 在.pro文件中添加编译/链接选项 INCLUDEPATH+= /usr/local/include INCLUDEPATH+=/usr/local/include/opencv LIBS+=/usr/local/lib/libopencv_core.so LIBS+= /usr/local/lib/libopencv_highgui.so LIBS+= /usr/local/lib/libopencv_imgproc.so
然后构建运行。
4.说明,以后在QT的项目的.pro文件里类似的加入上边的配置即可。
按照以上配置好之后,qt显示说找不到libopencvhighgui
于是又参考了http://blog.csdn.net/dumeifang/article/details/2963223
把/usr/local/lib写入/etc/ld.so.conf
成功搞定