文章目录
- VS2017+OpenCV4.5.1 安装与配置,扩展模块opencv_contrib的安装与配置
- 1、OpenCV下载:
- (1)下载地址:https://opencv.org/releases/page
- (2)解压到指定文件夹:
- 2、配置环境
- (1)配置电脑的系统环境变量:告诉电脑opencv在哪里;
- ① 新建项目:
- ② 配置包含路径
- 3、至此 opencv 环境配置完成,让我们来测试一下:
- 4、opencv 扩展模块的安装与配置
- (1)资源准备
- (2)CMake安装
- (3)使用CMake构建opencv源码
- (4)使用CMake构建扩展库 opencv_contrib
- (5)Visual Studio 2017 生成install文件夹
VS2017+OpenCV4.5.1 安装与配置,扩展模块opencv_contrib的安装与配置
1、OpenCV下载:
(1)下载地址:https://opencv.org/releases/page
(2)解压到指定文件夹:
下载:
解压:我自己建的文件夹,C:\cpp\vs
解压后的资源:
上面的sources就是opencv的源码库:git clone --branch 4.5.1 https://github.com/opencv/opencv
2、配置环境
(1)配置电脑的系统环境变量:告诉电脑opencv在哪里;
将opencv的bin目录添加到path:C:\cpp\vs\opencv\build\x64\vc15\bin
##### (2)接下来打开VS2017编辑器,进行编辑器的配置:
① 新建项目:
选择,下一步
选择,空项目
新建源文件
再VS里找到配置项页面:视图 -> 属性管理器 -> VC++目录
② 配置包含路径
-
C:\cpp\vs\opencv\build\include
-
C:\cpp\vs\opencv\build\include\opencv2
###### ③ 配置库目录 -
C:\cpp\vs\opencv\build\x64\vc15\lib
###### ④ 配置链接器 -> 附加依赖项
3、至此 opencv 环境配置完成,让我们来测试一下:
#include <opencv2\opencv.hpp> // 加载opencv4头文件
#include <iostream>
using namespace cv; //opencv的命名控件
using namespace std;
int main(int argc, char argv) {
Mat img; // 声明一个保存图像的类
img = imread("C:\\cpp\\vs\\suzy.jpg"); // 读取图像
resizeWindow("input", 300, 400); // 设置窗口大小为300 * 400像素
namedWindow("input", WINDOW_NORMAL); // 创建一个具有自适应大小的窗口
imshow("input", img); // 显示图像
waitKey(0); // 等待键盘输入
destroyAllWindows();
return 0;
}
vs运行代码:
- 生成 -> 重新生成解决方案
- 调试 -> 开始执行(不调试)
4、opencv 扩展模块的安装与配置
OpenCV在视觉算法中的功能非常强大,其中一个原因就是该算法库一直在与时俱进的更新,对于具有专利的算法(如SURF)以及一些还没有稳定的算法,OpenCV会将其置于扩展模块中,这些扩展模块包含在opencv_contrib代码库中,对于稳定的算法,会被移到OpenCV主仓库代码中,因此读者需要谨慎的使用opencv_contrib,因为不同版本的函数可能存在差异,一定要下载与你安装的OpenCV相同版本的,否则编译时会出现错误;
在OpenCV 3.x版本之后,opencv_contrib就不再包含于OpenCV源码中,opencv_contrib的源码可以在Github上下载,然后参与OpenCV源码编译;
opencv主库:https://github.com/opencv/opencv
opencv扩展库:https://github.com/opencv/opencv_contrib
(1)资源准备
- 进入 opencv 解压目录 cd C:\cpp\vs\opencv
- 在 C:\cpp\vs\opencv 目录下新建文件夹 newbuild,用于存放编译输出文件
- 在 C:\cpp\vs\opencv 目录下载
opencv4.5.1
的扩展库:git clone --branch 4.5.1 https://github.com/opencv/opencv_contrib
(2)CMake安装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xrJixMzR-1687774827901)(.\image\cmake.png)]
(3)使用CMake构建opencv源码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0bgfAB5m-1687774827902)(.\image\cmake.png)]
选择opencv源码文件,构建后生成文件存放位置,点击【Configure】按钮进行源码编译
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjrhbnHW-1687774827904)(.\image\resource1.png)]
选择vs版本,选择编译平台
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jnK3IKGs-1687774827905)(.\image\resource2.png)]
开始编译
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UJbSTQWI-1687774827906)(.\image\resource3.png)]
当出现 Configuring done 后说明构建成功,在CMake界面会出现很多变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmoj0nkg-1687774827907)(.\image\resource4.png)]
(4)使用CMake构建扩展库 opencv_contrib
找到 BUILD_opencv_world 在变量后面的方框内打上"√",该变量的含义是生成一个大的.lib文件,在配置链接器时只有一个 “opencv_world410d.lib” 文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zD1bqk3Z-1687774827908)(.\image\contrib1.png)]
找到 OPENCV_ENABLE_NONFREE 在变量后面的方框内打上"√",该变量的含义是为了在编译成功后可以使用具有专利保护的算法,如果该变量不被选中,就不能使用例如SIFT算法在内的具有专利保护的算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8WAVr6v-1687774827909)(.\image\contrib2.png)]
找到 OPENCV_EXTRA_MODULES_PATH 变量,该变量的含义是告诉编译器扩展包的源码在哪里,选择我们刚才下载的opencv_contrib安装包里的modules文件夹:C:\cpp\vs\opencv\opencv_contrib\modules,如果这个变量为空,在编译过程中也不会报错,只是安装了OpenCV的基础版
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qp1VcdEe-1687774827910)(.\image\contrib3.png)]
再次点击【Configure】直到所有的红色变量变成白色,之后点击【Generate】开始编译,编译成功后会在newbuild文件夹中生成许多文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WCAcJ7LH-1687774827912)(.\image\contrib4.png)]
(5)Visual Studio 2017 生成install文件夹
在newbuild文件夹中,找到OpenCV.sln文件双击,使用Visual Studio 2017打开该文件,生成 -> 重新生成解决方案,这个过程会比较漫长,漫长时间的等待,大概1~2个小时
在资源管理器中找到CMakeTargets中的INSTALL文件,右键 -> 仅用于项目 -> 仅生成INSTALL,会在newbuild文件夹中生成一个名为install的文件夹,我们用来环境配置的所有文件都存放在这个文件夹中,按照前面介绍的配置opencv环境的方式配置即可;
编译后newbuild 文件夹非常的大,会有几个G的文件,但是除了install文件夹最重要,绝大多数文件都是垃圾文件,如果觉得硬盘存储量有限,可以删除install文件夹之外的所有文件;
22222