OpenCV2.4.6与vs2008配置问题

刚刚学习Opencv,发现配置的时候蛮复杂的,特此记下以备后续。

我的opencv安装在D:OpenCVopencv

1.设置环境变量


首先说一下环境配置,看到很多网上说的是根据系统的位数来判断,但是自己实验后发现是根据vs2008当时建立的工程时用的编译器决定的,如win32对应x86.但确定好编译器的种类后在确定哪个版本vs2008对应vc9,vs2010对应vc10,都确定好了之后就可以配置环境变量了.如下图:

2.配置VS2010

之后就是在vs2008上面配置的问题了,首先创建一个空的文件夹,在此不赘述;之后我直接选择在工程文件的属性界面中(工程名称右键->属性)里面把配置属性(configuration property)中的C/C++的additional include directories改成文件所在的include,我常用的头文件highgui.h目录在D:OpenCVopencvuildincludeopencvhighgui.h,此时我设置的include为D:OpenCVopencvuildinclude,到时候直接在代码区添加#include<opencvhighgui.h>注意要加上opencv的路径。


此后在工程文件的属性界面中(工程名称右键->属性)里面把linker里面的additional library directories改成lib所在目录我的是D:OpenCVopencvuildx86vc9lib

最后在linker的input里面把additional dependencies里面的库文件都改成D:OpenCVopencvuildx86vc9lib中的文件,注意D:OpenCVopencvuildx86vc9lib里面的文件不是全部添加只挑格式为opencv_(The Name of the module)(The version Number of the library you use)d.lib的添加

我的添加目录为

opencv_calib3d246d.lib

opencv_contrib246d.lib

opencv_core246d.lib

opencv_features2d246d.lib

opencv_flann246d.lib

opencv_gpu246d.lib

opencv_highgui246d.lib

opencv_imgproc246d.lib

opencv_legacy246d.lib

opencv_ml246d.lib

opencv_nonfree246d.lib

opencv_objdetect246d.lib

opencv_ocl246d.lib

opencv_photo246d.lib

opencv_stitching246d.lib

opencv_superres246d.lib

opencv_ts246d.lib

opencv_video246d.lib

opencv_videostab246d.lib

想必大家都发现了每个文件的后面都有一个d字母,因为有两个版本release和debug,带D的是用于debug版本的,在D:OpenCVopencvuildx86vc9lib中debug和release版本都有所以在选择时要根据自己的当前版本选择。

一个简单的程序测试自己配置成功否

#include<opencvhighgui.h>

int main(int argc,char** argv){

IplImage *img = cvLoadImage(argv[1]);

cvNamedWindow("example1",CV_WINDOW_AUTOSIZE);

cvShowImage("example1",img);

cvWaitKey(0);

cvReleaseImage(&img);

cvDestroyWindow("example1");

}

这个程序是显示一个图片,别忘记将图片放置在工程文件的目录下我的是工程名字是simple teest,我放置的目录是C:UserswgqDocumentsVisual Studio 2008Projectssimple teestsimple teest。放置好后在vs2008中Properties->Debugging->Command Arguments输入自己的图片名称就行。

D:OpenCVopencvuildinclude

原文地址:https://www.cnblogs.com/jazzone/p/3236424.html