今天说一下opencv源码编译的问题,此篇博客适用于新手小白,大佬请绕行~
如果想扩展opencv_contrib请移步到2.2。
一、源码下载
首先我们需要opencv源码,可从opencv官网获取,官网地址,也可以从Git获取,Git地址,下载opencv源码的时候一定要注意自己下载的opencv版本是哪个版本,下图为查看opencv源码版本号。
这里为什么需要看版本号呢?
1、因为最新版的opencv很多函数和老版本的opencv不一样甚至删除了。
2、如果编译opencv扩展opencv_contrib的话也需要下载相同的版本号。
下载完成如图所示,这里就是opencv以及扩展opencv_contrib源码了。
二、opencv源码编译
编译源码用的是cmake,cmake可以去官网下载,下载地址,
下载安装好就行了,然后打开cmake进行源码的编译。
在编译之前需要有一步,创建一个新的文件夹,可以和源码在同一个文件夹下,也可以是其他地方。如图所示:
build是我自己新建的空文件夹,用来存放编译完的VS工程的。
2.1、cmake编译
打开cmake,选择opencv源码和自己新建的build空文件夹。
然后点击Configure按钮。
选择自己的VS版本
由于我用的是VS2017,所以选择了Visual Studio 15 2017,然后点击Finish,等着cmake编译源码结束。
编译中如图所示:
源码编译结束如图所示:
2.2、扩展opencv_contrib
如果是新手,不建议修改其内容,如果需要扩展opencv_contrib,如图所示,在OPENCV_EXTRA_MODULES_PATH选择.../opencv_contrib/modules文件夹。
然后再次点击Configure,如图所示:
configure成功结束之后,就可以点击Generate生成VS工程了。
当Generate结束之后,就可以点击open project打开VS工程了,也可以去build(自己创建的文件夹)里找到opencv.sln打开。
cmake软件就可以关掉了,已经用不到了。
打开VS之后,点击生成解决方案。
这个过程比较长,可以喝会咖啡,玩一局游戏等待即可。
编译结束之后,还需编译INSTALL,点击INSTALL右键,仅用于项目,仅生成INSTALL,如图所示:
INSTALL生成主要是生成include和lib文件。
编译结束后,opencv源码就编译完成了,下面就是对VS的配置问题。
三、VS配置
1、配置环境变量
我的电脑->右键->属性->高级系统设置->高级->环境变量,在系统变量里找到path->编辑,
将编译的install文件中的bin路径放入,以;分隔。
我的为D:\opencv\bulid\install\x86\vc15\bin
2、配置相关文件
注意:网上很多教程没有这一步,会报那种找不到dll文件的错误,是因为没有将opencv里面的相关文件复制到C盘中的文件夹里面
操作方法:将bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可
将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面。