东营伟浩建设集团网站,怎么查域名的注册人,深圳有哪些公司的总部,软件定制开发需要多少钱opencv环境配置
感谢大家学习这门教程。本系列文章首发于公众号【周旋机器视觉】。
这个这门课程的第一篇文章#xff0c;主要是opencv环境配置。
本教程的环境为
Visual Studio 2019CMake 3.22.3opencv 4.6.0windows 10
1、opencv的源码下载与安装
直接访问opencv官网主要是opencv环境配置。
本教程的环境为
Visual Studio 2019CMake 3.22.3opencv 4.6.0windows 10
1、opencv的源码下载与安装
直接访问opencv官网https://opencv.org/ 点击release进入进入发布页面选择4.6.0版本 Docsopencv-4.6.0官方文档Sourcesopencv源码GitHub官方github网址WindowsWindows平台下的安装包Release Notes4.6.0版本发布说明
这几个按钮都非常明确本教程我们需要用到的就是Docs、Windows这两项。
1.1 opencv官方文档 本课程主要看的就只有文档首页导航页的前两项在我们课程开始会先带大家学习这两部分的官方文档部分。
1.2opencv环境搭建
在开始直接编译源码之前我们先基于opencv的安装包来给VS配置opencv环境。点击上方页面中的windows会直接进入下载页面下载一个exe 这exe其实就是一个解压缩执行程序下载完成后直接执行选择一个路径则会将构建好的opencv以及源码解压缩到该目录 其中sources就是opencv的源码build就是官方给的构建好的opencv库。
我们可以自己手动构建opencv的源码然后编译源码工程来生成opencv动态库和静态库生成的产物就是build也可以直接在我们项目中使用官方构建好的opencv库。在链接opencv库这个步骤上两个是没有差异的无非就是一个官方给的dll一个是自己手动编译的dll。
但我们自己手动构建opencv源码可以方便的查看阅读opencv的源码工程可以在不同文件、不同函数实现之间任意切换编译生的debug版本的dll还可以调试。
1配置系统环境变量 进入高级系统设置-环境变量-用户变量或系统变量-添加opencv的库路径。
2VS链接opencv库手动配置法 直接创建一个演示用的VS控制台应用程序。 要想链接opencv库需要对项目的属性进行配置。进行配置的本质其实就是VS把一些可选项给你通过GUI的方式展示了出来并赋予了默认值你来修改一些选项来完成你自己项目工程的编译、链接、生成等过程的配置。所有的工作都由VS来帮你完成了。
而这些工作我们同样可以通过cmake来完成后面我们会介绍如何使用cmake来管理你的项目并链接opencv库。
我们打开项目的属性进行如下配置 配置库的include包含目录路径见截图。这一步是将opencv的include路径配置进你项目的包含路径内opencv的include文件夹内都是.hpp头文件。
完成这一步你其实就可以在你的项目中使用
#include opencv2/opencv.hpp来包含opencv的头文件并编写opencv的代码了
#include iostream
#include opencv2/opencv.hppint main()
{cv::Mat srcImage cv::imread(Laner.png);if (srcImage.empty()){std::cout image read Error!\n;return -1;}cv::imshow(src, srcImage);cv::waitKey();return 0;
}这代表这你当前可以编译通过了但是现在你并不能完成链接操作执行该项目会报错这些错误就是链接错误无法链接到opencv库 所以我们还需要链接opencv的静态库 上图配置了lib静态库的路径。然后还需配置lib静态库名称来告诉vs链接该路径下的哪个lib库让我们先看一下该路径下都有什么 可以看到一共只有两个lib库其余的为cmake文件后面我们使用cmake来管理项目并链接opencv库的时候会讲到。
两个lib库以d结尾的为debug版本没有d的opencv_world460.lib为release版本的静态库因为我们前面截图的配置选项一直都是release x64因此我们选择opencv_world460.lib库 当你配置debug x64属性的时候链接opencv_world460d.lib即可。
如果你按照我前面的步骤
下载opencv库配置库的系统路径添加opencv库的include头文件包含路径添加opencv静态链接库完成链接
那你运行你的程序应该是可以成功的。
不过在我电脑上却没有运行成功如下图因为我并没有配置库的系统路径。 这就可以凸显一个东西opencv的动态链接库。
opencv为动态链接库虽然我们通过头文件包含目录以及lib静态库完成了编译、链接的操作但当我们程序运行时程序还是通过动态库来调用opencv的那我们配置系统环境变量其实就是把opencv的bin目录也就是opencv的动态库路径打入了环境变量 当我们的程序运行时它会在可执行文件目录同级目录内查找需要的动态库如果没有找到则去系统环境变量里的路径内查找动态库如果还没有找到就会报如上找不到opencv_world460.dll动态库的弹窗错误。
所以解决办法也很简单有两种
配置opencv的动态库系统环境变量或者是将动态库拷贝到可执行文件的目录 我们采用方法2将dll拷贝到exe路径。再次运行我们的测试程序 运行成功。