OpenCV最佳配置(forVisual Studio)

OpenCV最佳配置(for Visual Studio)

tkorays(http://blog.csdn.net/tkorays

闭嘴,除非你能一鸣惊人!

 

        有时候浏览网页,发现有很多人不知道OpenCV怎么配置,不是头文件包含就是库链接出现问题,这里我来分享下我的配置。

        当我还是一个编程小白的时候,我最怕的就是在项目中使用其他库。因为要自己在VS中配置!有时候虽然知道流程,但就是很讨厌,要输入许多长串的路径,还要输入各种静态连接库名称。在写一个小的功能时,众多库配置项目让人吐血!

        经过多年学习后,如今发现一些技巧,和大家分享下。

 

下载安装

        为了保证完整,还是从安装讲起。

        直接在官方下载http://opencv.org/

        选择windows版本不是linux版本的,下载后,解压到一个目录。这里我选择的是2.4.8版本的,解压后,里面有build和source两个目录,build里面有编译好的库以及文档。我们只要使用这些就行了。

目录说明

        你可以把这个build目录整个放到其他地方。有些用不到的东西大可以不用管,但是include、x86或x64目录是必须的(视平台而定)。

        拿x86来说,里面有vc++的各个版本,vc12是vs2013里的vc++版本,vc11是vs2012的,这些表示各个vc版本编译的库,选择你的vc版本的库吧。最好这样,否则可能出现“没有找到msvcr*”之类的错误。

        vc12目录里有bin,里面有一些可运行的程序以及动态链接库。

        Vc12目录里有lib,是一些静态链接库。

        而staticlib和lib不一样,使用它编译的程序不要动态链接库支持。

        因此现在有include目录,里面有opencv和opencv2目录;适合自己平台的(如x86)vs版本的(vs2013的vc12)动态链接库以及其静态链接库。在某些时候你可以使用     staticlib,而不用动态链接库,这种方法这里不介绍。

 

创建环境变量

        创建环境变量OPENCV_INCLUDE、OPENCV_LIB、OPENCV_BIN。

        桌面右击计算机>>属性>>高级系统设置>>环境变量。

        在用户的变量里(只对当前用户有效,如果你觉得你的系统环境变量不够乱,也可以继续往里面加)点击” 新建“:

图1 环境变量配置

        按上图新建三个环境变量,OPENCV_INCLUDE指向OpenCV的include目录,OPENCV_LIB指向其lib的目录,OPENCV_BIN指向bin目录(lib和bin选择合适的)。

        得到这三个环境变量后,我们就可以在VS里直接填写这些环境变量,而不用填写又臭又长的地址了。

 

创建项目

     

      创建vs项目,并配置c++目录。

        如图填写OpenCV目录,这里不用写目录,直接写环境变量就是了,是不是写的文字少了,不用记住具体路径了。要是移动了OpenCV库目录,不用改项目,只用改下环境变量就行了。

图2 C++目录配置

         最重要的是团队合作时配置不用修改啊!~~

 

静态链接库问题


        在某些时候你是不是不想在项目配置里填静态链接库,一方面这些库名字长,另一方面可能由于这个项里的其他人使用opencv另一个版本,这时候别人直接下载你的项目时就要修改库链接。

        因此,我们可以使用#pragmacomment(lib ,”balabala”)来链接。我曾在网上找到一个人写的opencv的自动识别版本的库链接代码。

修改了部分,如下:

#ifndef_TK_CVLIB_H_
#define_TK_CVLIB_H_
#pragma once
#include<opencv2/core/version.hpp>

#defineCV_VERSION_ID CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION)CVAUX_STR(CV_SUBMINOR_VERSION)
#ifdef _DEBUG
#definecvLIB(name) "opencv_" name CV_VERSION_ID "d"
#else
#definecvLIB(name) "opencv_" name CV_VERSION_ID
#endif
 /*
  * Example:
  *          #pragmacomment( lib, cvLIB("core") )
 */
#endif


        这样,只要你include了这个头文件,就可以使用#pragmacomment( lib, cvLIB("core") )来加载一些opencv类库,不用管版本什么的。

 

小结


        这种方法可以推广,如配置IPP等。这些类库的配置,无非就是找到include、lib、bin目录,然后加进去就是。

        使用环境变量,在团队合作时好处很大,其他人复制你的项目而无需修改配置。

        一切为了方便!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值