Home  >  Article  >  Database  >  QT5.2+vs2012+opencv2.4.7环境配置

QT5.2+vs2012+opencv2.4.7环境配置

WBOY
WBOYOriginal
2016-06-07 15:20:491309browse

如果你安装的是使用Microsoft Visual Studio编译器的Qt(例如我安装的这个Qt,安装包文件名为:qt-windows-opensource-5.2.0- msvc 2012-x86-offline.exe),则不需要网传的对OpenCV进行编译的这个麻烦过程,直接利用VS的预编译文件即可。 需要注意的一点是Q

如果你安装的是使用Microsoft Visual Studio编译器的Qt(例如我安装的这个Qt,安装包文件名为:qt-windows-opensource-5.2.0-msvc2012-x86-offline.exe),则不需要网传的对OpenCV进行编译的这个麻烦过程,直接利用VS的预编译文件即可。

需要注意的一点是Qt不支持Visual Studio Express版。另外你最好先在Visual Studio下完成OpenCV简单demo的编译(参看我之前的博文),确保OpenCV环境设置正确。

使用Qt Creator这个IDE而不是VS的好处在于Qt Creator能够非常方便地调用所有Qt的组件,而且更加轻量级、启动也很快速,开发跨平台应用时也更加方便(主流平台下都有Qt Creator,而只有Windows才有Visual Studio)。

Qt程序的项目配置文件保存在.pro文件里,类似于VS2012中所配置的,Qt也没有“全局”的INCLUDE和LIB(库)路径的修改功能,而是通过对pro文件的改动来配置编译时需要包含的路径和库文件。

在Qt Creator里,新建一个项目,Qt控制台应用就可以了。然后在“编辑”面板里打开项目的pro文件,如下图所示:

QT5.2+vs2012+opencv2.4.7环境配置

添加下面几行:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

INCLUDEPATH += D:/openCV_build/include

 

win32:CONFIG(debug, debug|release): {

LIBS += -LD:/openCV_build/x86/vc11/lib \

-lopencv_core247d \

-lopencv_imgproc247d \

-lopencv_highgui247d \

-lopencv_ml247d \

-lopencv_video247d \

-lopencv_features2d247d \

-lopencv_calib3d247d \

-lopencv_objdetect247d \

-lopencv_contrib247d \

-lopencv_legacy247d \

-lopencv_flann247d

} else:win32:CONFIG(release, debug|release): {

LIBS += -LD:/openCV_build/x86/vc11/lib \

-lopencv_core247 \

-lopencv_imgproc247 \

-lopencv_highgui247 \

-lopencv_ml247 \

-lopencv_video247 \

-lopencv_features2d247 \

-lopencv_calib3d247 \

-lopencv_objdetect247 \

-lopencv_contrib247 \

-lopencv_legacy247 \

-lopencv_flann247

}

路径使用斜杠(/)而不是反斜杠(\),INCLUDEPATH是项目编译时会包含的头文件目录,后面加上的是OpenCV预编译文件的include(这里的路径和我之前那篇Visual Studio 2012配置OpenCV环境的是一样的),LIBS则是编译时需要链接的文件,-L后紧跟的是目录,-l后则紧跟对应的动态链接,和VS中不太一样的是不用写出完整的文件名(没有后面的.lib后缀),和VS2012中类似的则是这里通过CONFIG来确认编译类型是debug还是release来使用debug链接或release链接。前面用win32则保证这些链接仅在Windows下编译时被链接器链接。

前面几行的末尾的反斜杠是用来把一行内容分成多行写(类似C++的语法),这样做的目的主要是清晰易读,不必写一行超长的语句。

pro文件修改完成后保存,回到main.cpp文件里,一个简单的OpenCV demo内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include <opencv2></opencv2>

using namespace cv;

int main()

{

    Mat img = imread("D:/demo.png");

    if (img.empty())

    {

        fprintf(stderr, "Error: load image failed.");

        return -1;

    }

    namedWindow("image", CV_WINDOW_AUTOSIZE);

    imshow("image", img);

    waitKey();

    return 0;

}

它会载入D:/demo.png这个图片文件,你可能需要进行一些改动以便让该demo顺利运行。另外之前改动了pro文件,但是Qt Creator很可能认为项目配置没有变化,因此不会自动重新运行qmake,需要手动运行一次以免出现“LNK 2019”链接错误或者找不到包含目录的错误。“构建->执行qmake”,然后再“构建->重新构建项目”。以后没有改动pro的话,就不需要执行qmake了,直接点左侧面板上那个榔头(Ctrl+B)构建项目就可以了,绿色三角形(Ctrl+R)运行程序,绿色三角形带虫子(F5)调试程序。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn