VS2013+opencv3.3+contrib模块win7 *32位编译

来源:互联网 发布:软件咨询服务 编辑:程序博客网 时间:2024/06/05 15:39

最近准备学习opencv,就装了一个没有contrib模块的版本,然后就不能使用SURF,后来又捣鼓了好久终于重新装上了。为此,准备给自己写一份安装的记录,以备以后用到。

本文借鉴并且转载自http://blog.csdn.net/linshuhe1/article/details/51221015的Opencv学习笔记(八)--opencv3.1.0+opencv_contrib编译(windows)文章


一、下载opencv

从官网上下载:https://opencv.org/releases.html 


下载完之后解压到指定文件夹,获得如下结果



二、下载opencv_contrib源码:https://github.com/opencv/opencv_contrib/releases/tag/3.3.0

因为安装的opencv是3.3.0版本的,所以contrib最好也选择3.3.0版本,该网址链接的就是3.3.0版本的地址,如果是其他版本的可以从

https://github.com/opencv/opencv_contrib/releases选择对应版本

下载后,解压得到如下结果



三.下载cmake-gui工具:http://www.cmake.org/cmake/resources/software.html

cmake安装教程网上很多,百度搜索一下就可以


四、使用cmake生成OpenCV.sln:

1.打开cmake-gui\bin目录下的cmake-gui.exe工具

2.填写相应参数,包括:OpenCV源码目录和OpenCV.sln工程的导出目录,开始导出OpenCV.sln工程:


第一次导出时需要设置后面用来编译此OpenCV.sln工程的VS的版本,这里我用的是VS 2013:

虽然是64位系统,但是一般32位编译的文件居多,所以在我安装的时候选择的是32位编译。可以根据具体情况选择,也可以选择64位的。


设置完成之后点击“Generate”开始生成工程:


3.第一次编译完成之后,我们需要将额外的opencv_contrib加到工程中进行第二次编译,在配置表中 到“OPENCV_EXTRA_MODULES_PATH”,设置其参数值为open_contrib源码包中的modles目录,我的目录是“E:\OpenCV\tools\opencv_contrib-master\modules”:


设置完成之后点击Configure进行配置,不报错的话就进行第二次编译:


第二次编译一般很快就能完成:


编译完成后,我们在资源管理器下查看上面设置的文件输出目录,发现目录下多出了很多文件,其实就是OpenCV.sln工程文件:



五、用VS打开OpenCV.sln工程,编译生成Debug和Release库:

(记得用管理员身份打开vs2013,编译会比较顺利点)

1.用VS 2015打开OpenCV.sln工程,在解决方案中可以查看工程目录:


在生成的解决方案opencv中,一般有两种版本build并且install opencv:Debug 和 Release版本,它们之间的区别不大了解 ,具体百度。在本文中,我使用的是Debug,选择的编译平台是32位。

1. 右击All_BUILD,选择生成 。
2. 生成完成后,右击INSTALL,选择生成。
上述过程完成后,生成的是Debug版的动态链接库。

结束后,在工程目录下的install目录中,可以看到生成一下文件:



六、把新的库文件配置到到项目中

1、VC++目录-->包含目录,添加:D:\opencv3\opencv\mybuild\install\include

2、VC++目录-->库目录,添加:D:\opencv3\opencv\mybuild\install\x86\vc12\lib

                                                         D:\opencv3\opencv\mybuild\install\x86\vc12\staticlib

3、链接器-->输入-->附加依赖项,添加: (下面添加的Debug的版本,注意添加的库与编译选项要一致)

opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib

好啦,整个过程完结,可以开始使用opencv啦。

编译程序时候出错:

1>LINK : fatal error LNK1104: 无法打开文件“MSVCRT.lib”

解决方法:

VC++目录-->库目录,添加:G:\Program Files (x86)\VS2013\VC\lib(改成自己的vs2013的vc的lib文件地址),编译通过


原创粉丝点击