目前,OpenCV已经发展到OpenCV4.X了。 OpenCV是以CMake 作为项目架构系统的开源项目。 在OpenCV4中,只为我们CMake编译好了64位的适用于vc14(Visual Studio 2015 )和vc15(Visual Studio 2017)的bin和lib,如下图所示: 如果我们想在VS2012下使用,就需要自己Cmake。
下面是自己CMake编译OpenCV-4.1.2源码,使其可以在VS2012下进行图像处理开发的过程记录。
首先去OpenCV官网找到并下载OpenCV-4.1.2的源码,官网链接如下: https://opencv.org/releases/ 目前,OpenCV-4.1.2排在第三页,链接如下: https://opencv.org/releases/page/3/ 有时候中国大陆与OpenCV的官网会连接不通畅,所以这里再提供一个百度网盘下载链接,链接如下: 链接:https://pan.baidu.com/s/1FFm4N51j94j2xPUR7ahO6w?pwd=encc
接着,再下载OpenCV-4.1.2对应的扩展库的源码,扩展库OpenCV是把其放在github上的, 下载链接:https://github.com/opencv/opencv_contrib/releases/tag/4.1.2 从这个链接可以看出,要下载哪个版本的,那么修改链接中最后面的版本号就行了。 中国大陆与Github的连接有时候也会不通畅,所以这里也提供一个百度网盘的下载链接: 链接:https://pan.baidu.com/s/19kSLBQp9l5a1ySVo6vhq9g?pwd=y777 两个文件下载后的截图如下: 然后解压两个文件,截图如下: 新建一个名为build的文件夹,Cmake后生成的文件就存放于build文件夹中。 接下来下载CMake并安装, CMake官方网址下载链接如下: https://cmake.org/download/ 我下载的是下图红框中的。 还是给大家一个我下载的CMake版本的百度网盘下载链接: https://pan.baidu.com/s/1Jhd5u7Lnq4aIr3-sHMsSNg?pwd=hd0b 下载之后安装。 注意:下面这部很重要,一定要把CMake加入系统环境变量哈,否则会出现很多意想不到的错误。 以上是准备工作,准备工作完成后,我们开始利用CMake编译OpenCV-4.1.2源码,使其可以在VS2012下进行图像处理开发。
打开CMake,如下图所示: “Where is the source code”那里选择刚才解压出的“opencv-4.1.2”文件夹。 “Where to build thd binaries”那里选择刚才建立的build文件夹: 然后选择下方的“configure” 根据自己的C++环境进行配置:
配置完后点击Finish按钮,等待Cmakef进行分析处理: 处理完后会提示错误的地方 : 从上面的图中可以看出有很多错误,但我们只需要修改一个地方,如下图所示: 这是OpenCV扩展库的路径,我们需要正确填写。这个路径就是下面这个文件夹的路径: F:\OpenCV-4.1.2-Downloads\opencv_contrib-4.1.2\modules 修改完成后,再点击“configure”。 点击了上面的“configure””后,Cmake继续编译…然而不到10秒钟,就报以下的错误: 查看问题日志,发现如下错误:
Detected processor: AMD64
sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode
Found PythonInterp: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/python.exe (found suitable version "3.6.8", minimum required is "2.7")
libjpeg-turbo: VERSION = 2.0.2, BUILD = opencv-4.1.2-libjpeg-turbo
IPPICV: Download: ippicv_2019_win_ia32_20180723_general.zip
Try 1 failed
=======================================================================
Couldn't download files from the Internet.
Please check the Internet access on this host.
=======================================================================
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
IPPICV: Download failed: 6;"Couldn't resolve host name"
For details please refer to the download log file:
F:/OpenCV-4.1.2-Downloads/build/CMakeDownloadLog.txt
上面的错误日志告诉我们出错的原因是文件“ippicv_2019_win_ia32_20180723_general.zip”下载失败。 在网上找了半天,找到了Cmake中的需要这几个文件,具体的文件名:
b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip
55c0bc8ad27db00116fabf06508de196-opencv_videoio_ffmpeg_64.dll
5de6044cad9398549e57bc46fc13908d-opencv_videoio_ffmpeg.dll
0157251a2eb9cd63a3ebc7eed0f3e59e-ippicv_2019_win_ia32_20180723_general.zip
1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip
我把上面几个文件上传到CSDN,如果您也需要,可以花遇1.9元下载,链接如下: https://download.csdn.net/download/wenhao_ir/85328473 之所以要设置为付费资源,是因为博主花了不少时间才找到这几个文件的,所以设置为付费资源,敬请大家谅解。 使用方法大家可见下面这篇博文: https://blog.csdn.net/wenhao_ir/article/details/124664637
有了这几个文件后,再进行CMake,刚才的错误没有了,但是又出现下面的错误了:
Detected processor: AMD64
sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode
Found PythonInterp: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/python.exe (found suitable version "3.6.8", minimum required is "2.7")
libjpeg-turbo: VERSION = 2.0.2, BUILD = opencv-4.1.2-libjpeg-turbo
found Intel IPP (ICV version): 2019.0.0 [2019.0.0 Gold]
at: F:/OpenCV-4.1.2-Downloads/build/3rdparty/ippicv/ippicv_win/icv
found Intel IPP Integration Wrappers sources: 2019.0.0
at: F:/OpenCV-4.1.2-Downloads/build/3rdparty/ippicv/ippicv_win/iw
Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
Could NOT find BLAS (missing: BLAS_LIBRARIES)
Could NOT find LAPACK (missing: LAPACK_LIBRARIES)
Reason given by package: LAPACK could not be found because dependency BLAS could not be found.
从上面的错误日志中我们可以看出,缺少的是:OpenBLAS。 什么是“OpenBLAS”?网上找到的解释如下:
OpenBLAS 是一个基于BSD许可(开源)发行的优化 BLAS 计算库.BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法),例如: sgemm float矩阵乘法、sgemv float矩阵乘以数组… OpenBLAS是BLAS标准的一种具体实现。 OpenBLAS被应用于科学计算、数据分析、深度学习算法、人工智能等领域,被Caffe、MXNet、julia、Ubuntu、debian、OpenSuse、GNU Octave等知名项目所集成。例如,OpenBLAS被龙芯3A CPU的作为高性能BLAS库所使用. OpenBLAS可以在Windows,Android,iOS,Linux 和Mac OS等平台上运行,与各类硬件进行了优化适配x86_64, PowerPC, ARMV7, ARMV8, MIPS32, RISC-V硬件平台。
解决的办法应该是要安装OpenBLAS,由于我的系统是Windows 10,所以我们需要在Windows 10下安装OpenBLAS。 怎么在Windows 10下安装OpenBLAS?这里博主就先暂时不尝试了,因为最近手上的事情还比较多。 提供几个链接供大家参考: 1 OpenBLAS windows 10 编译【推荐大家优先尝试这种方法】 2 《OpenCV编译》七、编译OpenBLAS 下面这个博客提供了在OpenCV进行编译时要安装的各种支持库的编译安装方法,大家也可以参考一下: https://so.csdn.net/so/search?q=OpenCV%E7%BC%96%E8%AF%91&t=blog&u=tingzhiyi
|