[OpenCV]OpenCV+QT Creator环境配置

来源:互联网 发布:php eval 有特殊字符 编辑:程序博客网 时间:2024/04/30 03:59


1、  安装:

OpenCV:opencv 3.0

Qt版本:qt-opensource-windows-x86-msvc2010_opengl-5.3.2.exe

(坑1注意Qt版本:msvc和MinGW版本的区别。msvc使用的是vs的编译器,这个版本主要用于PC开发;MinGW版本使用MinGW编译器,主要用于跨平台开发。两个版本的Qt配置方式完全不同。因此在网上搜配置方法时候,要加上msvc或者MinGW这样的关键字一块搜索。网上大部分内容是关于MinGW版本的配置方法,我本地使用的是msvc版本。Msvc版本配置比较简单;MinGW版本需要下载cmake自行编译opencv。

另外说明:我这版本的Qt是Qt库和Qtcreator的集成版,官网上目前提供的应该有类似的版本。这个版本是在学校时候下载的,不是最新版。

参考:

http://www.librehat.com/qt-5-2-vs2012-opencv-2-4-7-dev-environment-setup-tutorial/

http://blog.csdn.net/skelking/article/details/43735971





2、  msvc版本的Qt配置类似VS,需要配置lib、include和bin目录

a)        bin目录一般在计算机环境变量path中配置,首次配置最后重启电脑或者注销一次使环境变量生效。


b)        include和lib需要在工程中配置

c)        新建Test测试工程,工程目录如下图


2)新建项目为纯C++控制台程序,头一次创建的是Qt的控制台程序,好像不太一样,没有成功。两者区别有待研究。

d)        打开.pro工程文件,配置OpenCV3.0

Include配置使用 INCLUDE+=开头,添加目录,每个目录使用反斜杠\隔开(\是分行隔开符号,将一行内容分行写)。此处模仿VS配置,将三个目录都加上了,亲测有效

Lib配置使用LIB+=开头,注意()使用-L引入目录(不知是否为必须),并且需模仿VS中配置下的link配置项,将用到的lib库名称写在LIB配置项中。每一个lib文件需要以-l开头,并且不带后缀.lib

如下为Test项目中的配置,可复制黏贴

INCLUDEPATH+=D:/OpenCV/opencv3/opencv/build/include\

    D:/OpenCV/opencv3/opencv/build/include/opencv \

    D:/OpenCV/opencv3/opencv/build/include/opencv2

 

LIBS+=-LD:/OpenCV/opencv3/opencv/build/x86/vc10/lib  \

-lopencv_ts300d   \

-lopencv_world300d

高能深坑2)见图

测试过程中,-lopencv_ts300d行后的反斜杠\忘记添加,qmake没有报错,但是构建项目的时候总是报错,错误类型是链接的时候的错误。。。百思不得其解。。。后来抱着试试看的态度添加上\,然后就神奇的好了!就好了~~~~后面展示小例程。静下来分析,\的作用是同一行内容分行写,如果忘了一个\,那么后一行的内容就不在属于上一行,就是说-lopencv_world300d没有被包进LIB项中!!!大坑!


e)        ()每次!记住是每次!修改.pro文件后都要进行一次qmake,使配置生效

f)         小例子

#include <iostream>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

using namespace std;

using namespace cv;

 

int main()

{

    //

    cout<<"opencv"<<endl;

    Mat src=imread("E:/ToBe_Developer/Qt_Pro/Jellyfish.jpg");  //在qt里面读取图片貌似只支持绝对路径

    imshow("test",src);

    waitKey(0);

    //cout << "Hello World!" << endl;

    return 0;

}

 

g)        运行结果

成功!

 

 

总结:一个字!

胆大心细

 

===================================================

MinGW版本的配置方法,网上有很多,还没有测试。如果需要跨平台开发,应该是要下载MinGW版本的Qt,并下载cmake重新自行编译opencv,在进行配置。配置方法应该是大同小异,将已有code导入现有工程总使用,就是要让现在的环境能够找的到第三方库。So,告诉他路径。

==================================================


 转头回来想,Qt的Opencv配置采用的是文本方式添加链接库,是很常见的一种配置方式。但是对于从VS集成开发环境起步再过来的开发者对这一块不是很熟悉,推荐多多学习一下这种方式。笔者也是初学者,不敢深入妄谈。