一、下载OpenCV
从网上 http://opencv.org/或者http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.4.8.exe 文件)。
将 OpenCV-2.4.8.exe 解压并放到某个目录下,例如 E:\Program_Files\opencv 。解压后的目录结构如下图。
右键单击我的电脑→属性→高级→环境变量。
单击新建,在弹出的对话框中,将变量名和变量值分别设置为OpenCV和E:\Program_Files\opencv\build。
注意:1、变量名可以自己定义;
2、变量值可修改为你的opencv\build文件夹所在的路径。
选中path,单击编辑。在path的末尾添加以下路径:E:\Program_Files\opencv\build\x86\vc12\bin。
注意:1、要在该路径前添加英文分号;,以与前面的路径隔开,但该路径末尾不可加英文分号;,除非还要在其后添加路径;
2、可根据自己的情况,将其改为你的opencv\build\x86\vc12\bin文件夹所在的路径;
3、如果是64位系统,可将opencv\build\x86\vc12\bin改为opencv\build\x64\vc12\bin。
说明:设置完环境变量,如果不行,需要重启电脑,才能生效。(本人没有重启)
配置VS2013,亦即告诉VC去什么地方寻找OpenCV的头文件和库。打开VS2013,选择菜单“工具”→“选项”→“项目和解决方案”→“VC++目录”,在VS2013中打开此选项,如下图所示,显示编辑功能被否决。
可以在具体的项目中,对特定的项目单击右键→属性来设置,只是这样的设置无法被继承,每一个项目都需要单独设置,太过繁琐,因此需要一个能够被继承的全局设置,方法如下:
要求:确保VS2013中至少有一个工程被打开。这里采用新建一个工程的办法,以便后面测试程序。
1、打开VS2013,新建项目→win32控制台项目→完成。
2、选择应用程序的CPU类型(如果选择win64的话)
如果你的”属性管理器”有“Debug|x64”和“Release|x64”两项,如图所示,则跳过该步骤,直接进入下一步3.
如果你的”属性管理器”没有“Debug|x64”和“Release|x64”两项,只有“Win32|x64”和“Win32|x64”的话,需要新建x64的解决平台,步骤如下:
a) 在“解决方案管理资源器”中右键,点击“属性”
b) 点击“**属性页”的“配置管理器”
c) 如果在“活动解决方案平台”或者“平台”选项内没有x64,则选择“新建”,如下图所示
或者
d) 在“新建项目平台“上添加x64平台
3、点击“视图”→“其他窗口”→“属性管理器”,结果如下图所示。
(注意:系统是x64的,于Solution Explore中右键,点击Properties,点击Configuration Manager,在Active solutionplatform中拉选New,拉选X64,此时分别有Debug/Release和X64/win32两个下拉选项,共四个状态(X64和win32各按所处平台配置Debug/Release两个状态)。)
1、从左侧项目中打开“Debug | x32”→“Microsoft.Cpp.x32.user”。
2、双击“Microsoft.Cpp.x32.user”,弹出窗口。
3、点击左侧VC++目录,编辑右侧的可执行文件目录、包含目录与库目录,分别添加对应的路径。
对应的路径如下:
1)可执行文件目录
E:\Program_Files\opencv\build\x32\vc12\bin
说明:1、可根据自己的情况,将其改为你的opencv\build\x86\vc12\bin文件夹所在的路径;
2、如果是64位系统,可将opencv\build\x86\vc12\bin改为opencv\build\x64\vc12\bin。
2)包含目录
E:\Program_Files\opencv\build\include
E:\Program_Files\opencv\build\include\opencv
E:\Program_Files\opencv\build\include\opencv2
说明:1、可根据自己的情况,将其分别改为你的opencv\build\include、opencv\build\include\opencv和opencv\build\include\opencv2文件夹所在的路径;
2、这里的include目录为build文件夹下的include目录,不要选成与build文件夹在同一个根目录下的那个include文件夹。
3)库目录
E:\Program_Files\opencv\build\x86\vc12\lib
说明:1、可根据自己的情况,将其改为你的opencv\build\x86\vc12\lib文件夹所在的路径;
2、如果是64位系统,可将opencv\build\x86\vc12\lib改为opencv\build\x64\vc12\lib。
4、附加依赖项
单击“链接器”→“输入”→“附加依赖项”,如下图所示。
如下图所示,在附加依赖项里,添加opencv\build\x86\vc12\lib文件夹里的lib文件名称:
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
opencv_nonfree249.lib
opencv_objdetect249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib
说明:上面的库为opencv\build\x86\vc12\lib里面的库文件,文件名后面有小写字母“d”的为Debug库(调试模式库),没有“d”的为Release库(发布模式库)。末尾的248
是版本号,和你lib里面的文件一致的。比如,OpenCV2.4.3的lib文件的末尾数字为243。如果版本不一样,要改正,使其一致。
(最好只是添加release/debug库的一种,因为两者会经常冲突,release下调用了debug库/debug下调用了release库)
四、配置x64平台
在解决方案管理资源器,分别设置“解决项目”属性页面和“项目”属性页面的平台x64.
a) 设置“解决项目”属性页面
在“配置”选项下选择“所有配置”;在“平台”选项下选择“活动(x64)”
b) 设置“项目”属性页面
在“配置”选项下选择“所有配置”;在“平台”选项下选择“活动(x64)”
五、测试程序
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");
}
分别编译debug版本和release版本。在debug版的exe目录下(即x64\Debug)新建test.bat,输入example1.exe lena.jpg,保存退出。双击test.bat,结果如下。
opencv2.4.9使用的库名称
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
opencv_nonfree249.lib
opencv_objdetect249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib