(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

时间:2021-10-16 05:36:02

1.下载OpenCV安装包:https://github.com/opencv/opencv

安装过程实际上就是解压过程,安装完成后得到(这里修改了文件名):

2.下载opencv_contrib源码:https://github.com/opencv/opencv_contrib

下载之后直接解压,得到源码目录:

3.下载cmake-gui工具:

选择不安装版的,根据自己的机型选择X86或者X64,下载完成后,直接解压即可使用,不必安装。

由于下载慢的原因,不能一步步截图,,以下将采用下面用到相关链接第一个。在相关链接的基础上进行增加自己的一点见解,和遇到的问题,以及处理

二、使用cmake生成OpenCV.sln:

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

(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

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

第一次导出时需要设置后面用来编译此OpenCV.sln工程的VS的版本(这里特别要注意的是,自己机器上是否装有相应的VS版本,如果没有装,还是要编译就会出错,可能是找不到对应的工具原因,以及选择X86和X64),这里用的是VS 2013 win64。

过程中会下载一些依赖包,如果失败,手动下载放到对应位置下

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

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

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

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

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

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

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

(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

2.编译生成debug版本的库,记得在此之前要选择编译的平台信息,这就是编译生成debug版本和release版本的区别,也可以选择release,因为自己的工程可能要用到相应的动态链接库:

在解决方案中选中工程,右键选择重新生成解决方案:

(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

3.找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”:

(一)在Windows下编译扩展OpenCV 3.1.0 + opencv

然后,在工程目录下的install目录中,可以看到生成了一堆文件,这堆文件是不是和最上面的截图很相近:

最后:配置系统环境变量Path

D:\opencv3\opencv_contrib\install\x64\vc12\bin

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

VC++目录-->包含目录,添加:

D:\opencv3\opencv_contrib\install\include D:\opencv3\opencv_contrib\install\include\opencv D:\opencv3\opencv_contrib\install\include\opencv2

VC++目录-->库目录,添加:

D:\opencv3\opencv_contrib\install\x64\vc12\lib

链接器-->输入-->附加依赖项,添加: (下面添加的release的版本,注意添加的库与编译选项要一致,需要注意debug比release的文件名多了个d)

debug   release