利用CMake编译OpenCV-4.1.2源码,使其可以在VS2012下进行图像处理开发的记录(因缺少OpenBLAS未成功)

目前,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

博主注:
博主于2022-06-03利用CMake编译OpenCV-3.0.0源码成功了,详情见 https://blog.csdn.net/wenhao_ir/article/details/125098843

关于最近利用Cmake编译OpenCV,过程不容易,曲折,所以写了篇心得体会,链接 https://blog.csdn.net/wenhao_ir/article/details/125102981

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值