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