opencv 4.5.0编译


最近由于项目需要使用opencv,思考一下之后,决定试用最新的4.5.0版本,因为需要使用openworld版本,所以需要自己编译获取,当然,也有想学习一下的成分在,下面分享下我的opencv 4.5.0编译经验。

准备工作

1.下载源码

第一件是肯定是下载opencv的源码,这里是官方的源码地址https://opencv.org/releases/,可以看到有很多版本,最新的是4.5.1,但是我个人更偏爱次新的版本,可能会更稳定点。点击指定版本的sources,进行下载。这里的问题在于,你可能下载失败,而且不会提示你下载失败了,我试过很多次下载到一半的时候突然停止下载了,然后打开文件的时候说文件有错误。所以最好是下载完成之后检查一下文件的大小是不是完整的大小。如果你真的遇到这个问题了,不要慌,可以尝试换几个电脑试一下,我是试了3台电脑才下载下来的。
在这里插入图片描述

2.下载opencv_contrib

在进行编译的时候我们需要使用这个工程进行配置,主要是用来生成vs的工程。这里也贴一个官方链接https://github.com/opencv/opencv_contrib/tree/4.5.0,链接地址是一个github仓,在git上下载我就不多说了。

3.下载cmake

因为我们需要使用cmake来编译我们的源码,来获取最后的vs项目。cmake官方也是免费的,https://cmake.org/download/,我再次选择了次新的版本,这个zip包的文件是免安装的,上面的msi版本需要安装,我比较偏爱免安装版本。
在这里插入图片描述

4.下载vs

正如上面说的,我们最后会生成一个vs项目,使用vs来编译我们的最后代码,所以我们需要一个vs,关于vs的版本就看你有啥了,最好是2017以上的,我的是2019,如果不知道怎么下载vs,这个链接可以帮到你https://visualstudio.microsoft.com/zh-hans/vs/

cmake配置生成vs项目

文件就位

将上面下载的opencv-4.5.0,opencv_contrib-4.5.0,解压放在一起,然后新建一个空的build目录,放我们生成的文件。
在这里插入图片描述

cmake开启

你需要将你的cmake安装或者解压,然后找到cmakegui,这是免安装版本的路径,安装版大同小异吧。
在这里插入图片描述
然后开启cmake-gui.exe,第一次代开一般是这样的。
在这里插入图片描述

配置cmake

配置源码路径和build,然后点击config
在这里插入图片描述
选择自己的vs版本,点击finish,cmake进行第一次构建。
在这里插入图片描述
等待对话框类出现configuring done,第一次构建就结束了,这个时候中间会出现很多红色的配置项,因为这里我们是为了获取openworld版本,在配置项中找到BUILD_opencv_world,把这个选项勾选上,然后找到OPENCV_EXTRA_MODULES_RATH这个配置项,把前面解压的opencv_contrib-4.5.0\modules目录配置进去,然后第二次点击configure
在这里插入图片描述

下载问题解决

这个时候要关注下面对话框中有没有出现红色的提示,如果有一般是有ffmpeg等dll没有下载下来.
在这里插入图片描述
一般原因是https://raw.githubusercontent.com网站访问不了。这个时候可以尝试查找这个网站对应的ip,在这个网站上可以查找https://www.ipaddress.com/,把https://raw.githubusercontent.com拷贝到搜索框。
在这里插入图片描述
搜索结果如下,可以看到有多个IP,这里我选择第一个网址尝试后就可以了,如果不行,可以切换几个尝试。
在这里插入图片描述
以windows10为例,打开C:\Windows\System32\drivers\etc\hosts文件,这是个没有后缀的文件,可以使用notepad++或者其他编辑器打开编辑,在文件最后面加上185.199.108.133 raw.githubusercontent.com,然后再次点击configure。
这一次可能需要下载比较长的时间,如果一直下载不下来或者下载失败,这个时候你或许需要科学上网工具了。但是也不是没有其他的办法,你还可以在build目录下找到CMakeDownloadLog.txt文件,在里面找到下载失败的文件的链接,用浏览器或者其他工具下载下来(推荐)
例如我下载的时候有这样一条报错:
#cmake_download “E:/makeopencv/opencv-4.5.0/.cache/ffmpeg/37e2dadf776631acc8856e281f29cf42-opencv_videoio_ffmpeg.dll” “https://raw.githubusercontent.com/opencv/opencv_3rdparty/6152e132572dfdaa32887eabeb7199bef49b14dc/ffmpeg/opencv_videoio_ffmpeg.dll”
#try 1。
将https://raw.githubusercontent.com/opencv/opencv_3rdparty/6152e132572dfdaa32887eabeb7199bef49b14dc/ffmpeg/opencv_videoio_ffmpeg.dll粘贴到浏览器下载下来文件,然后放到E:/makeopencv/opencv-4.5.0/.cache/ffmpeg/37e2dadf776631acc8856e281f29cf42-opencv_videoio_ffmpeg.dll
然后点击configure,直到没有错误为止。

生成vs工程

然后点击generate

开始编译

打开工程

我们在build下找到OpenCV.sln,打开
在这里插入图片描述
打开后工程如下
在这里插入图片描述
选择你需要的平台和其他基本配置,我们依次编译ALL_BUILD和INSTALL,这可能需要一点时间,但是我相信你能等的。

检查成果

我们可以在bin下找到opencv_world450.dll
在这里插入图片描述
在lib下找到opencv_world450.lib
在这里插入图片描述
但是我们最好是从Install目录获取我们需要的东西,我们从include获取到包含头文件,从x64里面的bin和lib获取我们的dll和lib,甚至还有其他我们需要的文件。

在这里插入图片描述

在这里插入图片描述
好啦,到这里我们的目的就达到啦,一个自己编译的完整的opencv的库,可以开始探索opencv啦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值