鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 数据库 > DB2 > >

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

来源:互联网 作者:佚名 时间:2015-09-02 06:23
如果你安装的是使用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文件,如下图所示:

添加下面几行:

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/opencv.hpp>
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)调试程序。

网友评论
<