前段时间把OpenCV移植到windows+QT下,每次新建工程都要在.pro文件中指定头文件路径变量INCLUDEPATH和链接文件变量LIBS。如下:
LIBS += F:\QT_OpenCV\install\lib\libopencv_calib3d230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_contrib230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_core230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_features2d230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_flann230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_gpu230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_highgui230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_imgproc230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_legacy230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_ml230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_objdetect230.dll.a
INCLUDEPATH += F:\QT_OpenCV\install\include\opencv \
F:\QT_OpenCV\install\include\opencv2 \
F:\QT_OpenCV\install\include这样感觉实在是麻烦,呵呵,我比较笨,聪明的人根本不是手工添加。其实,QT提供了建立自己的工程模板的方法,将QtSDK安装目录下..\QtCreator\share\qtcreator\templates\wizards\hello world 文件夹复制一份副本,将该副本重命名成你想要的名称,我命名的是openCV_QT,进入openCV_QT目录,重命名文件wizard_sample.xml 为wizard.xml(重要,不然QT找不到你的工程模板),然后修改该文件,我删除了很多我不需要的东西,改动了其中的一部分的内容,如下:
<wizard version="1" kind="project"
class="qt4project" firstpage="10"
id="A.openCV" category="B.CustomProjects">
<description>Creates a openCV-project with custom message.</description>
<icon>qtcreator_logo_24.png</icon>
<displayname>OpenCV</displayname>;
<displaycategory>OpenCV Projects</displaycategory>
<files>
<file source="main.cpp" openeditor="true"/>
<file source="project.pro" target="%ProjectName%.pro" openproject="true"/>
</files>
<!-- Create a 2nd wizard page with parameters-->
<fieldpagetitle>openCV Parameters</fieldpagetitle>
<fieldpagetitle xml:lang="de">Hallo Welt Parameter</fieldpagetitle>
<fields>
</fields>
</wizard>
接着,在project.pro文件中添加INCLUDEPATH和LIBS,删除我不需要的其他内容,我的project.pro的内容如下:
QT += core gui
LIBS += F:\QT_OpenCV\install\lib\libopencv_calib3d230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_contrib230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_core230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_features2d230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_flann230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_gpu230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_highgui230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_imgproc230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_legacy230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_ml230.dll.a \
F:\QT_OpenCV\install\lib\libopencv_objdetect230.dll.a
INCLUDEPATH += F:\QT_OpenCV\install\include\opencv \
F:\QT_OpenCV\install\include\opencv2 \
F:\QT_OpenCV\install\include
TEMPLATE = app
SOURCES += main.cpp最后修改mian.cpp,这个是你想要什么内容就怎么改,也就是每次建立的工程中的默认文件mian.cpp中你想要的内容,我的如下:
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
return a.exec();
}