由于需要使用opencv3.2的第三方库中dnn库做人脸比对( OpenCV+dnn 深度学习框架),而官网下载的opencv中没有dnn模块,故需要用cmake编译opencv,opencv_contrib中源码,得到dnn库。
一、准备工作
我电脑配置有:win7系统,64位,visual studio 2015。
opencv3.2下载:https://opencv.org/
opencv_contirb下载:https://github.com/opencv/opencv_contrib
cmake3.7下载:https://cmake.org/download/
下载以上对应版本软件,本博客默认已经安装好visual studio 2015,并配置好了opencv3.2,安装好了cmake。
我将opencv3.2直接解压到E:\opencv3.2\opencv,将opencv_contirb也解压到该路径,并新建mybuild文件夹,用于存放cmake编译生成的库等,如下图所示:
二、利用cmake编译opencv和opencv_contrib库
1、在cmake/bin中双击cmake-gui.exe打开cmake;
2、where is the source code目录选择opencv3.2中源码目录,即E:\opencv3.2\opencv\sources;where to build the binaries目录选择编译生成库的存放路径,即E:\opencv3.2\opencv\mybuild。点击configure,选定编译器为visual studio 14 2015,点击finish。
3、编译一段时间,可能会报错,如下图所示:
在红色区域找到OPENCV_EXTRA_MODULES_PATH,设置它的值为opencv_contrib/modules的绝对路径,即E:\opencv3.2\opencv\opencv_contrib\modules。再在红色区域内去掉WITH_CUDA等硬件不支持的库,再次点击configure。
4、编译一段时间,还可能会报错,是由于国内网络原因,导致部分库不能下载:
opencv_ffmpeg_64下载:https://download.csdn.NET/detail/xzzppp/9749910
ippicv_windows_20151201下载:https://download.csdn.Net/detail/xzzppp/9749959
protobuf-cpp-3.1.0.tar下载:https://download.csdn.net/detail/xzzppp/9749965
替换完后,再次点击configure,如果一切顺利会显示configure Done,表明configure完成。
5、点击Generate生成。
三、利用visual studio 2015编译Release库(Debug库类似)
1、打开E:\opencv3.2\opencv\mybuild目录下的OpenCV.sln;
2、在Cmake Target中找到INSTALL,右击将其设置为启动项,选择Release 64位条件,右击点击build生成Release库,没有报错就成功了。如下图所示:
上面是转自https://blog.csdn.net/xzzppp/article/details/54926117,
下面是自己的:,主要是包替换的问题,需要修改错误提示的.cmake文件,将FILENAME替换为 PACKAGE,如果文件还是无法下载,这时会在3rdparty对应的目录下有一个0字节的文件,替换该文件即可