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再次更新,则还可能出现这样的问题,届时再重复一下上述步骤即可。)

 

posted @ 2015-05-06 11:28  菜鸡一枚  阅读(1845)  评论(0编辑  收藏  举报