做项目过程中用到OpenCV中opencv_contrib下的一些模块,需要重新对OpenCV进行编译。

准备工作

下载OpenCV安装包:到sourceforge或github上下载3.2.0版本版本。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_右键


下载opencv_contrib源码

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_右键_02


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

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_OpenCV_03


打开cmake相应的文件夹,可以直接使用bin文件夹下面的工具cmake-gui.exe使用。(免安装)

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_解决方案_04


OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_05

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_06

这里我将OpenCV源码放在了C:\OpenCV\下了,在使用Cmake时,我们需要定位到源码文件夹C:\OpenCV\opencv\sources。在C:\OpenCV\下新建了文件夹CV13用于存放编译后的文件并将opencv_contrib源码文件夹重命名为contrib,放置在CV13文件夹下。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_解决方案_07


点击Generate按钮开始编译(这里特别要注意的是,自己机器上是否装有相应的VS版本,如果没有装,还是要编译就会出错,可能是找不到对应的工具原因)。

这里需要注意的是编译器的选择,图片中选择的是VS 2013 x86也就是32bit的编译器。这会跟你所引入OpenCV的工程配置相关。如果是64bit,这里必须使用Visual Studio 12 2013 x64版本的编译器。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_08

第一次编译完成后,需要将额外的opencv_contrib加入工程中进行二次编译,在配置表中找到“OPENCV_EXTRA_MODULES_PATH”,设置其参数值为open_contrib源码包中的modles目录。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_解决方案_09


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

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_10

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

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_11

用VS打开OpenCV.sln工程,在解决方案中可以查看工程目录。编译生成debug版本的库,记得在此之前要选择编译的平台信息,这就是编译生成debug版本和release版本的区别,也可以选择release,因为自己的工程可能要用到相应的动态链接库。这里我生成的是Win32的Debug动态库。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_编译器_12


在解决方案中选中工程,右键选择重新生成解决方案。找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”–>“仅生成INSTALL”。

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_右键_13


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

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_解决方案_14

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

1.VC++目录–>包含目录,添加:

C:\OpenCV\CV13\opencv\install\include

C:\OpenCV\CV13\opencv\install\include\opencv

C:\OpenCV\CV13\opencv\install\include\opencv2

2.VC++目录–>库目录,添加:

C:\OpenCV\CV13\opencv\install\x86\vc12\lib

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

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_右键_15


4.注意添加一下环境变量:

OpenCV入门一:在Windows下编译扩展OpenCV 3.2.0_OpenCV_16