您的位置:首页 > 编程语言 > Qt开发

OpenCV2.4.5 + QT4.8.4 + VS2010 环境搭建

2013-06-14 13:19 483 查看
忙乎了好几天终于把环境搭建成功,中间经历了好多纠结的情况,原因都是因为网上的资料都是比较老的版本搭建平台的资料,新版本出来,某些设置需要改一下,所以就耽误了不少时间!今天写个博客把这个过程记录下来,自己以后可以参考,同时也给大家学习提供参考(环境与操作系统无关,Win7和Xp配置相同)。

一、准备工作做好!下载软件和OpenCV库

OpenCV库,目前最新版本2.4.5。

VS2010下载,直接安装。

Qt:网址:http://qt-project.org/downloads

下载两个文件:Qt
libraries 4.8.4 for Windows (VS 2010, 234 MB)

Visual
Studio Add-in 1.1.11 for Qt4 (does not work with the Express edition)

二、OpenCV库的配置

1、解压OpenCV库到D盘,OpenCV会自己建个文件夹opencv。如果想解压到自己设置的文件夹也行。

2、配置环境变量:

xp:我的电脑-》属性-》高级-》环境变量

新建变量(用户,系统任选一个),变量名:opencv,变量值:d:\opencv



双击Path,(同上),在后面添加

[plain] view
plaincopy

;D:\opencv\build\x86\vc10\bin



三、新建一个工程,边配置OpenCV与工程的依赖,边实现OpenCV的第一个程序

1、打开VS2010,文件-》新建-》项目-》Visual C++-》win32 Console Application-》

Name:MyFirstOpenCVConsoleApp





2、确定-》下一步-》附加选项,空项目-》完成





3、View -》 Project Manager





4、在Property Manager窗口中,右键Debug|Win32,选择Add New Project Property Sheet,

5、选择Property Sheet(.props),Name:OpenCVProjectD,Location:选择工程主目录,这样以后再用OpenCV,配置可以直接添加OpenCVProjectD.props。





6、选择Add,双击OpenCVProjectD,选择VC++ Directories,配置Include Directories

添加:

[plain] view
plaincopy

D:\opencv\bulid\include\opencv

[plain] view
plaincopy

D:\opencv\bulid\include\opencv2

[plain] view
plaincopy

D:\opencv\build\include





7、设置Library Directories,添加opencv library目录进去:

[plain] view
plaincopy

D:\opencv\build\x86\vc10\lib



8、点击OK,选择Linker-》Input

在里面添加lib(lib格式是opencv_xx+版本号+(d是debug库,没有的是release库)+.lib):

[plain] view
plaincopy

opencv_calib3d245d.lib

opencv_contrib245d.lib

opencv_core245d.lib

opencv_features2d245d.lib

opencv_flann245d.lib

opencv_gpu245d.lib

opencv_highgui245d.lib

opencv_imgproc245d.lib

opencv_legacy245d.lib

opencv_ml245d.lib

opencv_objdetect245d.lib

opencv_ts245d.lib

opencv_video245d.lib





9、点击OK-》确定,Debug|Win32配置成功,如果你是用Release调试,Release|Win32也要配置,和Debug|Win32配置基本相同(4,5,6,7,8五步),

但是配置Release|Win32和Debug|Win32也有几个小地方不同:

5中Name:OpenCVProjectD -》OpenCVProjectR

8中添加的库,全部没有d,即:

[plain] view
plaincopy

opencv_calib3d245.lib

opencv_contrib245.lib

opencv_core245.lib

opencv_features2d245.lib

opencv_flann245.lib

opencv_gpu245.lib

opencv_highgui245.lib

opencv_imgproc245.lib

opencv_legacy245.lib

opencv_ml245.lib

opencv_objdetect245.lib

opencv_ts245.lib

opencv_video245.lib

10、点击左下角的Solution Exploer,右键Resource Files-》Add-》New Item-》C++ Files-》Name:main.cpp-》Add

11、在main.cpp中输入:




#include <opencv2/core/core.hpp>
#include <opencv2\highgui\highgui.hpp>

cv::Mat function();

int main(){

cv::Mat image = cv::imread("img.jpg");
if(!image.data){
return 1;
}
cv::namedWindow("Input Image");
cv::imshow("Input Image",image);
cv::Mat result;
cv::flip(image,result,1);
cv::namedWindow("Output Image");
cv::imshow("Output Image",result);
cv::imwrite("output.bmp",result);

cv::Mat gray = function();
cv::namedWindow("Display Image");
cv::imshow("Display Image",gray);
cv::waitKey(0);
return 1;
}

cv::Mat function(){
cv::Mat ima(240,320,CV_8U,cv::Scalar(100));
return ima;
}





12、在工程中添加一张img.jpg文件。





13、大功告成,点击运行,或者F5,等系统加载库文件完成,程序运行出两张图片,就说明OpenCV配置成功了。



四、安装和编译Qt4.8.4,

1、安装Qt4.8.4,具体目录自己订,但是目录不能有空格,我选的是直接在d:\Qt文件,然后一路next就行,

2、主要问题是Qt4.8.4的编译,Qt4.8.4的库要经过VS2010重新编译,编译之前要修改几个错误:

1)删除源码包中bin目录下的syncqt和syncqt.bat文件。

2)修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-,最后的-去掉。

3)修改D:\Qt\4.8.4\src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,改为

[cpp] view
plaincopy

return WEB_UI_STRING("Look Up <selection>", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));

3、编译

1)开始-》程序-》Microsoft Visual Studio 2010-》Visual Studio Tools-》Visual Studio命令提示(2010)。

2)在命令中输入如下命令:





3)输入o(选择Open Source模式),输入Y(同意license),回车,运行。

4)系统配置完成后,会有提示,输入nmake,然后回车,接着就是漫长的等待了。

4、安装Qt插件,一路Next到结束。

五、新建一个Qt程序,检验自己的Qt安装是否成功。

1、新建Qt工程:打开VS2010-》文件-》New-》工程-》Qt4 Projects-》Qt Application-》Name:MyQt-》Ok。



2、直接finish。

3、覆盖main.cpp程序如下:

[cpp] view
plaincopy

#include <QtGui/QApplication>

#include <QLabel>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

QLabel *label=new QLabel("<h2><i>Hello </i>""<font color=red>world!</font></h2>");//create a label with the content "Hello world!"

label->show();

return a.exec();

}

4、运行程序结果如下:





参考资料:
http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html http://blog.csdn.net/sangni007/article/details/8425119
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: