vc++2010配置编译opencv2.3.1通过(方法整理)

  • 从此下载 http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.3.1-win-superpack.exe 文件)。
  • 将 OpenCV-2.3.1-win-superpack.exe 解压并放到某个目录下,例如 D:\Program Files\OpenCV2.3.1 (无需运行setup.exe,解压则可)。

  • 安装CMake

    http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。

  • 用CMake导出VC++项目文件

    • 运行cmake-gui,设置where is the source code路径为OpenCV安装路径(本文档假定安装位置为:D:\Program Files\OpenCV2.3.1),并创建子目录D:\Program Files\OpenCV2.3.1\build\my,并将cmake的"where to build the binaries"设置为这个目录。

    接下来,我们在http://www.threadingbuildingblocks.org/uploads/77/151/3.0/tbb30_20100406oss_win.zip这里下载INTEL TBB 3.0(此处我们一般下载STABLE RELEASE,因为商业版的版本为2.0,我不能保证它完全支持VC10.0。

    接下来,我们按照顺序,首先安装CMAKE 2.8.1,然后解压OPENCV 2.1到你将要放置OPENCV的地方,接着,解压INTEL TBB 3.0,我是将OPENCV和TBB都放在PROGRAM FILES里面啦。打开CMAKE 2.8.1,在Where is the source code后面填写(或者选择)OPENCV 2.1的安装目录,在Where to build the binaries里填写你将要编译好的OPENCV 2.1 FOR VS2010解决方案的文件夹,接着点击Configure按钮,如果你初期在Where to build the binaries里填写的目录是不存在的,CMAKE将会询问你是否新建一个以此为名称的文件夹,点击是继续,在后续出现的对话框中选择Visual Studio 10,下面的选项选择Use default native compilers,点击Finish继续。过30秒左右之后会出现一个配置窗口(此处注意在CMAKE配置的时候是不能够打开VS2010的),然后勾选BUILD_SHARED_LIBS,BUILD_TESTS,OPENCV_BUILD_3DPARTY_LIBS,以及下面的WITH_JASPER,WITH_JPEG,WITH_PNG,WITH_TBB,和WITH_TIFF选项,勾好后再次点击Configure,之后再配置窗口最上面会出现TBB_INCLUDE_DIR-NOTFOUND字样的红色选项,此处为CMAKE找不到INTEL TBB的包含文件为之所至,将INTEL TBB 3.0里面的INCLUDE文件夹路径(注意是INCLUDE,不是INCLUDE里面的子文件夹)定位到该配置属性的路径里,再次点击Configure,在TBB_LIB_DIR处又会出现红色一行,此处为INTEL TBB的库文件位置,此处必须将路径定位到含有LIB文件的位置,比如我的安装位置是D:/Program Files/Intel TBB 3.0/lib/ia32/vc10,也就是说,在lib文件夹下会有子文件夹,必须定位到子文件夹对应的VC版本文件夹里去,这里由于是配置VS2010,所以我们选择VC10文件夹,ia32子文件夹是32位系统,此处应根据对应操作系统选择。然后,我们再次点击Configure,此时所有红色行已经变为白色,同时在下方的信息里面会有一条为Use TBB:YES的字样,证明我们已经将INTEL TBB配置完毕,然后点击Generate,完成后在生成文件夹下会出现一个VS2010的解决方案文件OPENCV.SLN。

     

  • 双击打开后生成的OPENCV.SLN,出现OPENCV 2.3.1的所有工程项目,先不要着急编译,首先点击Solution Explorer里面的Property Manager,依次展开ALL_BUILD—Debug|Win32—右键单击Microsoft.Cpp.Win32.user,选择Properties,然后选择VC++ Directories,在Executable Directories里面将INTEL TBB 3.0的可执行路径填写到里面,此处与LIB一样,必须定位到VC10才可以,例如我的是D:\Program Files\Intel TBB 3.0\bin\ia32\vc10,将Include Directories定位到Intel TBB的Include文件夹即可无需再往深入定位,在Library Directories里填写Intel TBB的LIB文件位置,定位到VC10文件夹,然后单击确定之后,将选项卡切回到Solution Explorer,将编译模式切换为Debug模式,右键单击Solution OpenCV,选择Rebuild Solution,编译后在单击INSTALL项目,选择Build,之后将编译模式切换为Release模式,重新编译解决方案,再编译INSTALL项目,在你的解决方案文件夹里面会生成bin目录,include目录,lib目录,在VS2010里切回到Property Manager,像上面一样展开Microsoft.Cpp.Win32.user后选择Properties,然后再VC++ Directories里面增加OPENCV 2.1的可执行文件(bin),包含文件(include/opencv),以及库文件(lib),确定,退出并保存更改。到此OPENCV 2.3.1配置完成,在以后建立OPENCV项目时需在每一个项目里面添加依赖库,方法是在解决方案管理器里面右键选择项目,选择属性,然后再链接器里面选择输入,在依赖库里添加OPENCV的LIB文件夹里德LIB文件名称,文件名后面有小写字母“d”的为调试模式库,没有“d”的为发布模式库,即可。

     

    编译 OpenCV Debug和Release版本库

    完成上一步骤后,将在D:\Program Files\OpenCV2.3.1\build\my目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:

    • 在Debug下,选择Solution Explorer(解决方案资源管理器)里的 Solution OpenCV(解决方案“OpenCV”),点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
    • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

    全部运行完毕后,针对你的系统的OpenCV库就生成了。

    配置include路径

    也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,包含 D:\Program Files\OpenCV2.3.1\build\include;D:\Program Files\OpenCV2.3.1\build\include\opencv;D:\Program Files\OpenCV2.3.1\build\include\opencv2 如果是自己编译的则输入D:\Program Files\OpenCV2.3.1\build\my\install\include ,注意如果“vc++目录”为空的话可到 “视图”--->“属性页”下找到“vc++目录”。

    配置lib路径

    也即告诉VC去什么地方寻找OpenCV的库文件。

    在刚才下载的文件OpenCV-2.3.1-win-superpack.exe 里,已经为VC2008和VC2010预先编译好了动态库和静态库。因此我们不需要如早先版本那样,自己用cmake编译OpenCV。

    • 自己编译的库,库目录为:D:\Program Files\OpenCV2.3.1\build\my\install\lib
    • 32位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\build\x86\vc9\lib
    • 32位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\build\x86\vc10\lib
    • 64位系统 & VC2008,库目录为:D:\Program Files\OpenCV2.3.1\build\x64\vc9\lib
    • 64位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\build\x64\vc10\lib

    设置环境变量

    刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll文件目录如下,请根据自己情况五选一:

    • 自己编译的库,dll目录为:D:\Program Files\OpenCV2.3.1\build\my\install\bin
    • 32位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\build\x86\vc9\bin
    • 32位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\build\x86\vc10\bin
    • 64位系统 & VC2008,dll目录为:D:\Program Files\OpenCV2.3.1\build\x64\vc9\bin
    • 64位系统 & VC2010,dll目录为:D:\Program Files\OpenCV2.3.1\build\x64\vc10\bin

    由于有些函数需要TBB,所以需要将tbb所在的目录也加入到环境变量Path中。TBB相关的DLL路径为:

    • 32位系统 & VC2008:D:\Program Files\OpenCV2.3.1\build\common\tbb\ia32\vc9
    • 32位系统 & VC2010:D:\Program Files\OpenCV2.3.1\build\common\tbb\ia32\vc10
    • 64位系统 & VC2008:D:\Program Files\OpenCV2.3.1\build\common\tbb\intel64\vc9
    • 64位系统 & VC2010:D:\Program Files\OpenCV2.3.1\build\common\tbb\intel64\vc10

    如下图所示将OpenCV和TBB的dll文件所在的目录系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。

    在“控制面板”->“系统”中设置如图:

    使用OpenCV 2.3.1编程

    • 打开VC++ 2008 Express,创建一个Win32控制台程序helloopencv;
    • 选择Solution Exploreropencvhello项目,点击鼠标右键,选择Properties。

    • 在[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:opencv_calib3d231d.lib; opencv_contrib231d.lib; opencv_core231d.lib; opencv_features2d231d.lib; opencv_flann231d.lib; opencv_gpu231d.lib; opencv_highgui231d.lib; opencv_imgproc231d.lib; opencv_legacy231d.lib; opencv_ml231d.lib; opencv_objdetect231d.lib; opencv_ts231d.lib; opencv_video231d.lib
    • 为项目的Release配置增加[附加依赖项 Additional Dependencies]:opencv_calib3d231.lib; opencv_contrib231.lib; opencv_core231.lib; opencv_features2d231.lib; opencv_flann231.lib; opencv_gpu231.lib; opencv_highgui231.lib; opencv_imgproc231.lib; opencv_legacy231.lib; opencv_ml231.lib; opencv_objdetect231.lib; opencv_ts231.lib; opencv_video231.lib

    这样就配置好了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值