VS2010+OpenCV2.4.6永久性配置方法
1、 配置OpenCV环境变量
计算机->(右键)属性,出现如图1所示界面
单击“高级系统设置”,选中高级(标签)出现如图2所示界面
单击右下方的“环境变量”,弹出如图3所示界面,注意这里最好用户变量和系统变量都设置一下
选中path,单击下方“编辑”按钮
在变量值里面添加” …\build\x86\vc10\bin”(里面的…为自己的opencv路径。例如我的: D:\ProgramFiles \opencv\build\x86\vc10\bin;
2、 配置VS2010环境
大家在使用opencv的时候肯定会面对这样一个问题:根据官网以及大多数教程提供的方法中,似乎每一次新建一个opencv的新项目以后都需要重新再配置“VC++目录”中的“包含目录”和“库目录”;以及“链接器”中的“附加依赖项”。这给我们造成了很多的不便,大家都希望寻找一种只需要配置一次opencv环境的方法,下面我就给大家介绍一种简单的方法:
VS2010中传统配置opencv环境是通过设置项目中的“属性”来完成的。如图5:
这里就是我们看到的每次都需要进行opencv配置的界面。
这并不是我们所用的配置环境,在这里我们的配置过程如下:首先确保已经打开一个C++的工程,在IDE中,打开视图->属性管理器(有的是视图->其它窗口->属性管理器,没有什么区别)。展开树形后,你会发现一个名为“Microsoft.Cpp.Win32.user”的项目,如图6:
右击并点击“属性”后,你会看到一个和工程属性页类似的属性设置框”Microsoft.Cpp.Win32.user属性页”。如图7:
在以上的属性页中,我们就按照opencv配置的过程进行配置:
0. 选择“VC++目录”选项;
0. 将” …\opencv\build\include;…\opencv\build\include\opencv;…\opencv\build\include\opencv2”,添加到包含目录;(”…\”表示opencv安装目录)
0. 将”…\opencv\build\x86\vc10\lib”,添加到库目录;
1. 打开连接器->输入->附加依赖项;
将所需的库文件添加到附加依赖项中去:
对于Debug配置需要添加如下库(我的版本号是2.4.0,并且把所有的库都添加进去了,大家可以视情况而定)
opencv_calib3d246d.lib;opencv_contrib246d.lib;opencv_core246d.lib;
opencv_features2d246d.lib;opencv_flann246d.lib;opencv_gpu246d.lib;
opencv_haartraining_engined.lib;opencv_highgui246d.lib;
opencv_imgproc246d.lib;opencv_legacy246d.lib;opencv_ml246d.lib;
opencv_nonfree246d.lib;opencv_objdetect246d.lib;
opencv_photo246d.lib;opencv_stitching246d.lib;opencv_ts246d.lib;
opencv_video246d.lib;opencv_videostab246d.lib;
如果是release配置,则添加:
opencv_calib3d246.lib;opencv_contrib246.lib;opencv_core246.lib;
opencv_features2d246.lib;opencv_flann246.lib;opencv_gpu246.lib;
opencv_haartraining_engine.lib;opencv_highgui246.lib;
opencv_imgproc246.lib;opencv_legacy246.lib;opencv_ml246.lib;
opencv_nonfree246.lib;opencv_objdetect246.lib;
opencv_photo246.lib;opencv_stitching246.lib;opencv_ts246.lib;
opencv_video246.lib;opencv_videostab246.lib;
最后点击“确定”就Ok啦!
3、 用VS2010新建控制台工程测试:
这里就不详细说了,大家可以新建个空项目,添加C++文件,文件中输入一下代码:
#include <iostream>
#include <opencv/highgui.h>
using namespace std;
int main()
{
IplImage* img = cvLoadImage("test.jpg" );
if(!img)
{
printf("error");
}
cvNamedWindow("OpenCV", CV_WINDOW_AUTOSIZE );
cvShowImage("OpenCV", img );
cvWaitKey(0);
cvReleaseImage(&img );
cvDestroyWindow("OpenCV" );
return 0;
}
点击保存,然后编译运行,会出现图像。注意图片要放到项目文件下的具体工程文件夹下。
如果编译或者运行出错
1如果提示找不到cv.lib:
从网上下载opencv1.0.然后把里面的lib文件夹复制到你的opencv文件夹下;
然后以VS2010为例,在这个解决方案右键--属性--连接器--常规--设置附加库---添加这个路径.
2如果提示找不到libgsl.lib,libgslcblas.lib:
这是因为VS调用了GSL库,GNU Scientific Library (GSL)是一个开源的科学计算的函数库,里面有大量的数学计算 函数,非常强大:
在 http://gnuwin32.sourceforge.net/packages/gsl.htm 页面下载
Complete package, except sources Setup 以及
Sources Setup 分别进行安装
在目录D:\Program Files\GnuWin32\src\gsl\ 1.8\gsl-1.8\VC8 ,用VS2010 打开libgsl.sln 文件,在资源管理器中可以看到四个工程,然后F7编译。
把gsl的lib文件夹下的libgsl.lib,libgslcblas.lib这两个考到vs2010,vc的lib目录下,如果打开gsl的lib目录并没有libgsl.lib,libgslcblas.lib这两个文件。
解决办法在网上找了下就是:
打开vs2010的命令提示框,进入gsl库的lib目录下依次输入一下两条语句:
lib /machine:i386 /def:libgsl.def
lib /machine:i386 /def:libgslcblas.def
在看lib目录下,有了libgsl.lib,libgslcblas.lib这两个文件,拷贝到vs2010目录下,就完成了。
3错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
在电脑里面搜索发现
C:\Program Files\Microsoft Visual Studio
10.0\VC\bin
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65
C:\Windows\Microsoft.NET\Framework\v4.0.30319
这三个路径里面都有cvtres.exe文件,尝试使用第二个路径里面的文件替换第一个路径的文件,问题解决。
(这个问题是windows自动更新造成编译器cvtres.exe的版本过低,如果windows再次更新,则还可能出现这样的问题,届时再重复一下上述步骤即可。)