当前位置:C++技术网 > 资讯 > opencv编程:4 如何一劳永逸搞定opencv配置

opencv编程:4 如何一劳永逸搞定opencv配置

更新时间:2016-03-07 22:16:31浏览次数:1+次

  网站里有一篇关于opencv配置的文章,感觉介绍的不详细,在这里详细介绍下,以及如何实现一次配置多次使用。 

 通过为vs2010配置opencv来进行介绍,使用的是opencv-2.4.9,我的opencv的安装目录是C:\opencv,大家在后续的配置过程中要注意一下目录。

  首先,配置一下环境变量,在环境变量->系统变量->Path的变量值中添加C:\opencv\build\x86\vc10\bin。安装好的opencv\build\x86目录下有“vc10vc11vc12”三个文件夹,因为我用的编译器是vs2010,所以这里是“vc10\bin”,vc11是用来配置vs2012的。

  接下来就是在编译器中进行配置。先创建一个控制台程序,随便一个“.cpp”文件就可以。打开属性管理器,在“Debug|Win32”上右键->添加新建项目属性表

 新建一个属性表,取名为“opencvd”,我这样定义是因为这个属性表用在Debug下,还会定义一个属性表用在Release下,后面配置依赖库时会提到

 在属性管理器中,双击打开刚刚新建的属性表,进行配置

 在VC++目录中,需配置可执行目录、包含目录、库目录:

可执行目录:C:\opencv\build\x86\vc10\bin

包含目录: C:\opencv\build\include\opencv

                C:\opencv\build\include

                C:\opencv\build\include\opencv2

库目录:C:\opencv\build\x86\vc10\lib


 下面就是要配置依赖项了,链接器->输入->附加依赖项,

 这里要添加的是C:\opencv\build\x86\vc10\lib文件夹下的“.lib”文件,这里的文件有d结尾的,也有不是d结尾的,带d的是用在Debug下的,不带d的是用在Release下的。

为了方便大家配置,这里列出lib文件夹下的文件名,配置时候只需复制一下即可

opencv_ml249d.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_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib 


  配置好这些,“确定”一下就好了。

  这里解释下为什么要分别在DebugRelease下分别建一个属性表,因为DebugRelease使用的依赖项不同,建两个属性表的目的就是在不同的属性表下添加不同的依赖项。也有人只建立一个属性表,把lib文件夹下所有的“.lib”文件都包含进去,不建议大家这样做,因为可能会出现一些意想不到的错误。



   下面配置一下Release下属性表,名字定为“opencvr”,过程跟Debug下的都一样。

 三个目录中的内容也是一样的,只是附加依赖项不同:

opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.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


 



  两个属性表就这样配置好了,这仅仅是在这个文件中有效,如果每次使用都这样配置的话,就太麻烦了,我们有一个方便的办法。刚刚我们新建了两个属性表:opencvd.propsopencvr.props,进入文件目录中找到这两个文件,把它们复制保存在自己容易找到的位置,下次当某个文件要使用opencv时,只需将这两个文件复制到该文件的目录下,然后在编译器的属性管理器中“添加现有属性表”即可,在Debug下使用就添加“opencvd.props”,在Release下使用就添加“opencvr.props”,这样就很简单的完成了opencv在新文件下的配置。这比每次都按上面的方法配置节省了很多时间。