注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

G G I C C I

 
 
 

日志

 
 

如何在Qt中使用OpenCV  

2012-08-11 15:36:01|  分类: Qt |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        用Qt可以方便地创造好看的GUI,要是能和OpenCV结合起来我们就能写出蛮好的一个处理或者管理图片的软件。怎么在Qt中使用OpenCV呢?请看下文:

        :我的Qt版本4.7.4(C:\QtSDK\Desktop\Qt\4.7.4),OpenCV版本2.3.1(E:\opencv),Qt下有MinGW编译器(C:\QtSDK\mingw)

        具体步骤:

Step1>

        CMake OpenCV,使用CMakehttp://www.cmake.org/)生成OpenCV库的makefile文件,需要注意的是解压出来的OpenCV存储路径中的文件夹不要带有空格或者中文(我的是E:\OpenCV,不要用类似于E:\工程\opencv, E:\Open CV这种),打开CMake,指定源码位置(就是OpenCV解压出来的地方)和存放生成文件的地方,Configure弹出如图对话框,选择MinGW MakefilesSpecify native compilers

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

跳出对话框用以指定C++和C的编译器路径,C用gcc.exe,在QtSDK目录下的mingw/bin子目录中,C++用g++.exe

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

然后再次Configure,无错误后选中WITH_QT

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

再次Configure会出现下图信息提示找不到Qt的Qmake可执行文件

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

手动指定Qmake.exe所在目录(在.\QtSDK\Desktop\Qt\4.7.4\mingw\bin下面):

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

 

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

再次Configure,无错误后 Generate

Step2>

        编译

        1> Cmd命令 转到Generate到的目录(我的是如上图所示的E:\opencv\MinGW)

             >> cd E:\opencv\MinGW

        2> Cmd命令 编译文件

             >> mingw32-make

        3> Cmd命令 编译INSTALL

             >> mingw32-make install

过程如图:

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

 

Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

 Step3>

        在存放Generate生成的目录下有一个install目录,编译好的所有结果都在这里啦,包括bin,lib和include,把bin目录放到环境变量path中,其实可以把整个install目录拷贝到某个地方使用,这样就可以把opencv目录里面的内容全删了,省的占空间。我就把install里面的内容全都搬到了E盘下的OpenCVforQt目录下了(0.0)。

 

Example:

        在用QtCreator和OpenCV的时候,修改用到opencv的工程的.pro文件就可以了,添加include和lib,例如:

          QT       += core gui

          TARGET = Win_OpenCV_Test

          TEMPLATE = app
          INCLUDEPATH += E:\OpenCVforQt\include
          INCLUDEPATH += E:\OpenCVforQt\include\opencv
          INCLUDEPATH += E:\OpenCVforQt\include\opencv2
          LIBS += E:\OpenCVforQt\lib\libopencv_core231.dll.a
          LIBS += E:\OpenCVforQt\lib\libopencv_highgui231.dll.a
          LIBS += E:\OpenCVforQt\lib\libopencv_imgproc231.dll.a
          SOURCES += main.cpp
        
        一个例子:
Code Snippet
  1. #include <QtGui/QApplication>
  2. #include <QtGui/QMessageBox>
  3. #include <cv.h>
  4. #include <highgui.h>
  5. using namespace cv;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     QApplication app(argc, argv);       
  10.     Mat giraffe = imread("f:/giraffe.jpg");     
  11.     if(giraffe.empty())
  12.     {
  13.         QMessageBox::warning(0, "Warn", "Empty image!", QMessageBox::Ok);
  14.     }
  15.     else
  16.     {
  17.         imshow("giraffe [press any key to exit]", giraffe);
  18.         waitKey();
  19.     }
  20.     return 0;
  21. }
Qt_Basic_如何在Qt中使用OpenCV - ___________杰 - __________Ggicci

  评论这张
 
阅读(17161)| 评论(8)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017