本来是想编译OpenCV4的,但是用到的一个OCR库依赖OpenCV3,所以这次先编译opencv3.4.14。
首先下载opencv3.4.14源码,链接:
https://github.com/opencv/opencv/releases
。
下载opencv_contrib3.4.14源码,链接:
https://github.com/opencv/opencv_contrib/releases/tag/3.4.14
。注意opencv和opencv_contrib的版本得对上,不然可能会出问题。
将下载下来的源码解压,创建目录compile存放编译生成的文件。
打开cmake-gui
点击“configure”按钮,这里如果选择 “Visual Studio 14 2015”,则最后生成的库会是32位。点击“Finish”按钮开始配置。
有很多红色选项说明有些文件没有下载下来。
打开compile目录下的CMakeDownloadLog.txt,根据里面的提示信息下载缺失的文件,注意:这里电脑必须能上外网,否则可能会下载不下来。比如CMakeDownloadLog.txt里面有如下提示信息,表示需要将
https://raw.githubusercontent.com/opencv/opencv_3rdparty/e99214251d9f3cde7c48abd46b2259bddc9885b6/ffmpeg/opencv_ffmpeg.dll
下载到E:/AudioVideo/opencv/SourceCode/opencv/opencv3.4.14/compile/3rdparty/ffmpeg目录中。
#do_copy "opencv_ffmpeg.dll" "fad5ada9be36120bba8966709e7953a8" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/e99214251d9f3cde7c48abd46b2259bddc9885b6/ffmpeg/opencv_ffmpeg.dll" "E:/AudioVideo/opencv/SourceCode/opencv/opencv3.4.14/compile/3rdparty/ffmpeg"
#missing "E:/AudioVideo/opencv/SourceCode/opencv/opencv3.4.14/compile/3rdparty/ffmpeg/opencv_ffmpeg.dll"
#cmake_download "E:/AudioVideo/opencv/SourceCode/opencv/opencv3.4.14/opencv-3.4.14/.cache/ffmpeg/fad5ada9be36120bba8966709e7953a8-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/e99214251d9f3cde7c48abd46b2259bddc9885b6/ffmpeg/opencv_ffmpeg.dll"
这里一般还会提示缺少ffmpeg_version.cmake文件,打开链接:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/e99214251d9f3cde7c48abd46b2259bddc9885b6/ffmpeg/ffmpeg_version.cmake
。
网页另存为文件,另存为ffmpeg_version.cmake.txt。然后再拷贝到opencv3.4.14\compile\3rdparty\ffmpeg目录,重命名为ffmpeg_version.cmake。这里如果自己新建一个txt,然后直接将网页上的内容拷进去,然后再该后缀为.cmake是不行的,会提示md5不匹配。 boostdesc_bgm.i、boostdesc_bgm_bi.i等文件也如此操作。
下载完所有缺失的文件后,目录大概会如下所示:
下载所有缺失的文件后,勾选cmake-gui中的BUILD_opencv_world选项(使最后只生成一个库),勾选OPENCV_ENABLE_NONFREE选项,OPENCV_EXTRA_MODULES_PATH选项中填写opencv_contrib-3.4.14源码解压后里面的modules的路径(比如opencv_contrib-3.4.14\modules),去掉勾选ENABLE_PRECOMPILED_HEADERS,再次configure,可以看到没有红色了,并且CMakeDownloadLog.txt里面也
没有报错。如下图所示:
然后点击“Generate”按钮,出现“Generating done”的提示信息后,点击“Open Project”
在vs中点击“生成”->“重新生成解决方案”
如果没有错误,右击INSTALL,点击“仅用于项目->仅生成INSTALL”
然后即会在install目录下生成dll相关的内容。
参考文章: