一、介绍
    从今天开始,我们又要开始一个新的系列了,这个系列就是《C++之 Opencv 入门到提高》。这个系列是有关如何使用 C++ 语言,通过 Opencv 来实现图像处理、缺陷检测、视频处理、机器学习等功能。OpenCV 我也是新接触的,一步一步的学习,一步一步提高。这个系列是以 C++ 为基础的,所以要想看懂里面的代码,C++ 还是必须要有点基础的。
    OpenCV 是什么,我简要的说明一下。OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
     在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。OpenCV 是一个好东西,我这里只是做一个简单的介绍,如果大家想了解更多,可以去网上自行脑补吧。它的官网地址:https://opencv.org/
    今天是这个系列的第一篇,话不多说,我们开始认识一下它。

    我需要进行说明,以防大家不清楚,具体情况我已经罗列出来。
        操作系统:Windows Professional 10(64位)
        开发组件:OpenCV – 4.10.0
        开发工具:Microsoft Visual Studio Community 2022 (64 位) - Current版本 17.8.3
        开发语言:C++(VC16)

二、测试源码
    环境配置好了,我们怎么知道是否配置成功呢,如果有代码执行一下,就可以知道了。代码里有图片路径,执行之前需要替换。
    2.1、helloworld.cpp

 1 #include <opencv2/opencv.hpp>
2 #include <opencv2/highgui/highgui.hpp>
3 #include <opencv2/imgproc.hpp>
4
5 using namespace cv;
6
7 int main()
8 {
9 Mat dest = imread("D:\\360MoveData\\Users\\Administrator\\Desktop\\TestImage\\guanyu.jpg", -1);
10 namedWindow("demoWindow", cv::WINDOW_AUTOSIZE);
11 imshow("demoWindow", dest);
12
13 waitKey(0);
14 destroyAllWindows();
15 return 0;
16 }

三、配置流程
    C++ 版本的 Opencv 配置其实不是很难,主要是分为三步,第一步:下载必要的组件,第二步:配置环境变量,第三步:配置 C++ 项目属性。三步完成,接下来就可以测试了。虽然分为3个步骤,但是我是按着顺序一步一步做的,没有分三步,每步在细分。

    3.1、OpenCV 组件官网下载
        官网地址:https://opencv.org/releases/
        我直接上一幅图,让大家有一个直接的感受。它的最新版本是 4.10.0,当然,在这个页面也罗列出来其他版本,我使用的是最新的。
        
    3.2、因为我的系统是 Windows 版本,所以我点击【Windows】连接,开始现在 Windows 版本的安装程序。
        
    3.3、当 opencv-4.10.0-windows.exe 下载完毕,双击直接安装就可以了。我的安装目录是 E 盘,目录中不要包含中文字符。
        

        下载完成后,我们双击 exe 文件,把文件进行解压,我存放在 E 盘。如图:

        

        点击【Extract】解压文件。

        

        解压完成后,会在 E 盘生成一个 opencv 的目录,进入目录,如图:

        

        进入 E:\opencv\build 目录,是生成的项目,如图:

        

        在 x64 目录下面,有一个目录是:E:\opencv\build\x64\vc16\bin,这个地址就是要增加到环境变量中的。如图:

        

    3.4、开始配置环境变量,右键点击【此电脑】,选择【属性】,进入【设置】窗口。点击窗口右侧的【高级系统设置】,如图:
        

    3.5、点击【高级系统设置】,打开【系统属性】窗口,选择【高级】选项卡,点击下方的【环境变量】按钮。如图:

        

    3.6、点击【环境变量】按钮,打开【环境变量】窗口。如图:

        

    3.7、在【环境变量】窗口的下方【系统变量】部分,找到【Path】配置项,点击【编辑】按钮,打开编辑窗口。如图:

        

    3.8、在【系统变量】窗口内,选择【Path】项,点击【编辑】按钮,打开【编辑环境变量】窗口。如图:

        

    3.9、进入到【编辑环境变量】窗口,先点击【新建】按钮,会在窗口列表底部,出现空白行,将 opencv 的 bin 目录,拷贝在此,点击【确定】按钮完成。
        

    3.10、现在,我们需要配置 Visual Studio 2022 C++ 项目一些设置了。首先,我们使用 VS2022 创建一个空的 C++ 项目。效果如图:

        

    3.11、先选择【OpenCV.TraningSeries-001】项目,点击右键选择【属性】,或者点击快捷键【alter+enter】,打开项目属性窗口,如图:

        

        红色标注的就是我们要配置的内容。主要有两项:VC++ 目录、连接器的输入项。

    3.12、接下来,我们先配置【VC++目录】的【包含目录和库目录】。包含目录,配置内容是:E:\opencv\build\include,库目录:E:\opencv\build\x64\vc16\lib。

        

        配置库目录,操作差不多。点击【库目录】右侧,编辑按钮,打开编辑窗口。如图:

        

        编辑库目录。

        

        最后效果,如图:

        

    3.13、配置 VC++ 连接器的【输入】项目。就是要把 库目录:E:\opencv\build\x64\vc16\lib 下的 opencv_world4100d.lib 文件增加到这里。如图:

        

        点击【编辑】按钮,打开编辑窗口。

        

    3.14、到此,我们就全部配置完成了,就可以写代码测试。

        
    
四、总结
    这是 C++ 使用 OpenCV 的第一篇文章,很简单,主要讲述了为了在 C++ 环境下使用 OpenCV 如何配置环境,我第一次配置还是忙活了半天,还好,最后成功了。初见成效,继续努力。皇天不负有心人,不忘初心,继续努力,做自己喜欢做的,开心就好。

C++之OpenCV入门到提高001:使用 Visual Studio2022 配置 OpenCV 环境的更多相关文章

  1. 【opencv入门篇】快速在VS上配置opencv

    环境配置:win7-32 + opencv2.4.6 + vs2013 注意:无论电脑是32位还是64位,配置opencv库目录时选择x84文件夹!因为编译都是使用32位编译:如果选用X64,则程序运 ...

  2. 【opencv入门篇】 10个程序快速上手opencv【上】

    导言:本系列博客目的在于能够在vs快速上手opencv,理论知识涉及较少,大家有兴趣可以查阅其他博客深入了解相关的理论知识,本博客后续也会对图像方向的理论进一步分析,敬请期待:) PS:官方文档永远是 ...

  3. 【opencv入门篇】 10个程序快速上手opencv【下】

    导言:本系列博客目的在于能够在vs快速上手opencv,理论知识涉及较少,大家有兴趣可以查阅其他博客深入了解相关的理论知识,本博客后续也会对图像方向的理论进一步分析,敬请期待:) 上篇传送:http: ...

  4. OpenCV入门:(一:安装与配置)

    看到的不是自己的,只有写下来的才是自己的,上次接触OpenCV实在三个月前,亢奋的看完了OpenCV自带的入门文档,觉得对图形处理有了一点点了解,现在三个月过去了,由于学习需要,想深入了解OpenCV ...

  5. Visual Studio配置OpenCV设置全局的继承属性

    1.安装完毕OpenCV后,新建一个CLR空项目,将其取名为"SetingGlobalOpenCVDir"便于以后变更版本时修改.如下图所示: 2.点击"视图->其 ...

  6. Visual studio2019配置OPENCV 时属性管理器中没有Microsoft.Cpp.x64.user的解决办法

    方法一:重新下载Visual studio2017,再次打开2019就会出现Microsoft.Cpp.x64.user,感觉有些麻烦,也占电脑空间,推荐方法二. 方法二:与方法一原理相同,下载201 ...

  7. 系列文章 -- OpenCV入门教程

     <OpenCV3编程入门>内容简介&勘误&配套源代码下载 [OpenCV入门教程之十八]OpenCV仿射变换 & SURF特征点描述合辑 [OpenCV入门教程之 ...

  8. 【OpenCV入门指南】第一篇 安装OpenCV

    http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...

  9. webdriver实用指南迁移至gitbbok并改名为selenium webdriver从入门到提高

    背景 几年前我写了一本关于selenium webdriver的小册子,主要讲了一些selenium在进行测试过程中会遇到的场景以及解决方案,陆陆续续在github上收到了100+的star,在这里我 ...

  10. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

随机推荐

  1. CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客)

    我们很高兴地宣布 CryptoHouse,在 crypto.clickhouse.com 上可访问,这是一个由 ClickHouse 提供支持的免费区块链分析服务. https://crypto.cl ...

  2. Linux下简单几步安装AI开发环境-ROS(超有意思)

    机缘巧合,接触到了一个开源的项目ROS,只需要根据一口君的操作,就可以很容易搭建一个具有3d效果的开发环境,非常有意思,和大家分享下. 0.什么是ROS ROS(Robot Operating Sys ...

  3. Python开发中,日期时间的相关处理

    在Python开发中,日期和时间处理是一个常见的需求.Python提供了多种模块和方法来处理日期和时间,以下是一些常用的模块和操作.通过介绍一些系统的Python类库以及第三方的类库,我们可以快速的实 ...

  4. 004.MinIO-DirectPV分布式存储部署

    MinIO部署介绍 部署概述 Kubernetes hostpath.local和本地静态配置都存在需要事先在node节点准备好可用的块存储或文件系统,例如对插入的硬盘,或者磁盘阵列做分区格式化,文件 ...

  5. Es java API官网手册

    官方地址: 一.TransportClient客户端 https://www.elastic.co/guide/en/elasticsearch/client/java-api/7.5/index.h ...

  6. github拉取项目执行npm i 失败的问题

    一般卡在core-js没反应,然后报错的第一行是和node-sass有关的,基本上都是node-sass版本问题,这时候只需要在命令行输入两行代码就行 先把原来的依赖删掉 npm uni node-s ...

  7. 【测试平台开发】——02Vue前端框架实战—router路由设计(登录页面)

    一.安装vue-cli Mac系统: sudo npm install -g vue-cli 检查是否安装好: vue -V 二.创建新项目 1.打开Vue项目管理器 输入命令: vue ui 但是没 ...

  8. Unity 中 Color 与 Color32 的区别

    1. 存储方式 Color用四个浮点数(float)来表示RGBA,取值范围均是0到1 举例: var orange = new Color(1f, 0.5f, 0f, 1f); 而Color32使用 ...

  9. 解决Mac安装软件的“已损坏,无法打开...”问题

    解决Mac安装软件的"已损坏,无法打开. 您应该将它移到废纸篓"问题 不管在安装时会遇到以已损坏无法打开的困惑, 解决: 一.允许"任何来源"开启 苹果从mac ...

  10. Qt 中实现异步散列器

    [写在前面] 在很多工作中,我们需要计算数据或者文件的散列值,例如登录或下载文件. 而在 Qt 中,负责这项工作的类为 QCryptographicHash. 关于 QCryptographicHas ...