一、介绍
    从今天开始,我们又要开始一个新的系列了,这个系列就是《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. 017.Kubernetes二进制集群扩容worker

    一 前置准备 1.1 互信配置 为了更方便远程分发文件和执行命令,本实验配置master节点到其它节点的 ssh 信任关系. 1 [root@master01 ~]# ssh-copy-id -i ~ ...

  2. B. BerSU Ball

    B. BerSU Ball 排序后考虑\(dp\),\(dp_{i,j}\)表示前\(i\)个男生和前\(j\)个女生能匹配的最大数. \[\begin{aligned} if(|a_i - b_j| ...

  3. 4. 从0开始学ARM-ARM指令,移位、数据处理、BL、机器码

    <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于ARM指令用到的IDE开发环境可以参考下面这篇文章 <1. 从0开始学AR ...

  4. AvaloniaChat-v0.0.2:兼容智谱AI 快速使用指南

    智谱AI介绍 北京智谱华章科技有限公司(简称"智谱AI")致力于打造新一代认知智能大模型,专注于做大模型的中国创新.公司合作研发了中英双语千亿级超大规模预训练模型GLM-130B, ...

  5. css flex属性

    css学的不咋熟,搞一个复杂一点的水平居中,用display 属性 + position属性 + float属性,搞了好久居然没搞出来,然后我去翻资料,发现我最不常用的flex能解决这个问题,于是我就 ...

  6. Devexpress 控件学习记录(一:BarManager 控件、XtraTabbedMdiManager 控件)

    BarManager 控件 最终实现的效果如下: 首先在窗体中拖出BarManager控件,窗体Bar add地方点击添加 设置BarManager的属性 设置出现的窗体的底部[DockStyle=B ...

  7. Prometheus 告警恢复时,怎么获取恢复时的值?

    Prometheus 告警事件中的 $value 表示当前告警触发时的值,但是在告警恢复时,Resolved 事件中的 $value 仍然是最新告警时的值,并非是恢复时的值,这是什么原因和原理?是否有 ...

  8. 对GEE下载时分块影像进行镶嵌(GDAL)

    前言 GDAL自带的镶嵌功能比较单一,只能将图像简单拼接到一起,不能实现直方图匀色以及羽化等功能,但是对GEE导出的分块影像进行镶嵌较为适合. 优点: 使用代码,镶嵌多个影像较为简便 GDAL较为稳定 ...

  9. .net core 负载均衡取客户端真实IP

    一个网关代码(.net core 3.1),部署到负载均衡器有故障,发现获取到的客户端IP都是内网IP了,负载均衡用的是阿里云的SLB . 记录一下修改过程 在Strup.cs 中的 Configur ...

  10. kuboard部署在k8s集群中

    kuboard部署在k8s集群中,yaml配置文件 #cat kuboard.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: a ...