Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262675
  • 博文数量: 45
  • 博客积分: 1618
  • 博客等级: 上尉
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-11 10:13
文章分类

全部博文(45)

文章存档

2012年(1)

2011年(25)

2010年(19)

我的朋友

分类: C/C++

2011-10-29 13:43:58

需要的工具:
1、安装QT SDK环境
2、安装CMake for Windows
3、OpenCV最新Windows源码
步骤:
1、将QT SDK安装目录下的{QtSDK}\mingw\bin添加到系统环境变量PATH中
2、打开CMake,设置源码位置和源码构造位置

3、点击configure,选择如下

4、选择c和c++编译器,就是QT SDK下mingw/bin下mingw32-gcc和mingw32-g++
5、configuer后generate
6、通过cmd进入到D:/OpenCV执行mingw32-make.exe编译开,稍等即可
7、完毕后D:/OpenCV下lib、bin目录会生成库文件,此时我们可以将lib、bin目录,加源码中include目录拷贝到单独目录,这些构成了OpenCV的SDK
8、打开QT Creater创建一个QT的空项目,修改pro文件添加OpenCV的include和lib
  1. INCLUDEPATH += D:\OpenCV\include
  2. LIBS += D:\OpenCV\lib\*.a
9、创建c++源文件,添加如下代码
  1. #include <highgui.h>//包含opencv库头文件
  2. #include <cv.h>
  3. int main( int argc, char** argv ) {//主函数
  4.   cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );//创建窗口,(名字,默认大小)
  5.   CvCapture *capture = NULL;// 视频获取结构, 用来作为视频获取函数的一个参数
  6.    capture = cvCreateCameraCapture(0);//打开摄像头,从摄像头中获取视频
  7.    IplImage* frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
  8.     while(1) {
  9.         frame = cvQueryFrame( capture );// 从摄像头中抓取并返回每一帧 
  10.         if( !frame )
  11.             break;
  12.         cvShowImage( "Example2", frame );//在窗口上显示每一帧
  13.         char c = cvWaitKey(33);//延时,每秒钟约33帧;符合人眼观看速度;
  14.         if( c == 27 )
  15.             break;//由于是死循环,而且没有控制台,当按下键盘exc键,退出循环;
  16.     }
  17.     cvReleaseCapture( &capture );//释放内存;
  18.     cvDestroyWindow( "Example2" );//销毁窗口
  19. }
10、编译通过后执行会出现错误,这是由于缺少dll,将编译OpenCV成功后的bin目录添加到系统PAHT或者拷贝到项目目录下,再次调用成功
11、不过并没有使用OpenCV的c++接口,回头补充
参考文章:
QT+OPENCV视频采集
QT Creator 编译 OpenCV

阅读(11260) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~