一、介绍
    从今天开始,我们又要开始一个新的系列了,这个系列就是《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. 内存交换空间--Swap Space

    转载请注明出处: 一.概述 内存交换空间(Swap Space)是计算机内存的一种补充,位于硬盘驱动器上.当物理内存(RAM)不足时,系统会将不活跃的页面(或称为内存页)移到交换空间中,以释放物理内存 ...

  2. 聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现

    本文基于 Netty 4.1.56.Final 版本进行讨论 时光芿苒,岁月如梭,好久没有给大家更新 Netty 相关的文章了,在断更 Netty 的这段日子里,笔者一直在持续更新 Linux 内存管 ...

  3. AtCoder Beginner Contest 327 D

    AtCoder Beginner Contest 327D D - Good Tuple Problem (atcoder.jp)(种类并查集,二分图染色) 算法学习笔记(7):种类并查集 附上典题: ...

  4. RealNet:从数据生成到模型训练的最新工业异常检测 | CVPR 2024

    论文提出了一种创新的自监督异常检测框架RealNet,集成了三个核心组件:可控制强度的扩散异常合成(SDAS).异常感知特征选择(AFS)和重构残差选择(RRS).这些组件通过协同作用,使RealNe ...

  5. 设计模式之cglib动态代理

    什么是动态代理呢?动态代理就是在java进程运行时,通过字节码技术,动态的生成某个类的代理类.在这个代理类中,我们可以做一些额外的操作,一方面仍然保持原有的方法的能力,另外一方面还增强了这些能力.听着 ...

  6. C# 导出datatable数据到excel

    第一步:下载两个需要的NUGET包 1.org.in2bits.MyXls:2.NPOI 第二步:关键类OutExcel. using System; using System.Linq; using ...

  7. Vuex的四个轻骑兵:mapState、mapGetter、mapMutation、mapAction(转载)

    vuex进阶一.state1.1 引入vuex 以后,我们需要在state中定义变量,类似于vue中的data,通过state来存放状态 import Vue from 'vue'import Vue ...

  8. python pyqt6 设定窗口置顶

    self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint)即可效果一般,页面会出现闪烁一次, # 置顶按钮 self.top_button = QPu ...

  9. vue单元测试

    0.测试钩子函数 describe的钩子函数 在测试块describe中,存在这四个钩子函数,他会在describe执行的不同时期调用: before():在该区块的所有测试用例之前执行 after( ...

  10. 剖析 Redis List 消息队列的三种消费线程模型

    Redis 列表(List)是一种简单的字符串列表,它的底层实现是一个双向链表. 生产环境,很多公司都将 Redis 列表应用于轻量级消息队列 .这篇文章,我们聊聊如何使用 List 命令实现消息队列 ...