- 从此下载 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。 - 运行cmake-gui,设置where is the source code路径为OpenCV安装路径(本文档假定安装位置为:
- 双击打开后生成的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
这样就配置好了!
vc++2010配置编译opencv2.3.1通过(方法整理)
最新推荐文章于 2022-02-19 00:30:19 发布